C 语言文件输入/输出(I/O)函数大全

在这里插入图片描述

  • C 语言文件输入/输出(I/O)函数大全
    • 1. fopen() 函数
    • 2. fclose() 函数
    • 3. fread() 函数
    • 4. fwrite() 函数
    • 5. fseek() 函数
    • 6. ftell() 函数
    • 7. rewind() 函数
    • 8. feof() 函数
    • 9. ferror() 函数
    • 10. clearerr() 函数
      😊

C 语言文件输入/输出(I/O)函数大全

C 语言提供了一系列的文件输入/输出(I/O)函数,用于读取和写入文件,这些函数非常重要且广泛应用于各种程序中。在本文中,我们将详细介绍 C 语言中的文件 I/O 函数,并提供每个函数的简介、使用示例和注意事项。

1. fopen() 函数

fopen() 函数用于打开一个文件,返回一个 FILE 指针。它的模式参数可以是以下几种:

  • r:只读模式
  • w:写入模式
  • a:追加模式
  • rbwbab:以二进制方式打开文件

示例代码:

FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {printf("无法打开文件\n");
} else {fclose(fp);
}

2. fclose() 函数

fclose() 函数用于关闭一个已经打开的文件。

示例代码:

FILE *fp = fopen("example.txt", "w");
fprintf(fp, "Hello World!\n");
fclose(fp);

3. fread() 函数

fread() 函数用于从文件中读取数据,返回读取的字节数。

示例代码:

FILE *fp = fopen("image.jpg", "rb");
char buffer[10];
int bytesRead = fread(buffer, 1, 10, fp);
if (bytesRead == 0) {printf("读取失败\n");
} else {// 处理读取的数据
}
fclose(fp);

4. fwrite() 函数

fwrite() 函数用于将数据写入到文件中,返回写入的字节数。

示例代码:

FILE *fp = fopen("data.txt", "wb");
int data[] = {1, 2, 3, 4};
size_t bytesWritten = fwrite(data, sizeof(int), 4, fp);
if (bytesWritten != 4) {printf("写入失败\n");
} else {fclose(fp);
}

5. fseek() 函数

fseek() 函数用于将文件指针移动到指定位置。

示例代码:

FILE *fp = fopen("example.txt", "r");
fseek(fp, 10, SEEK_SET); // 将文件指针移到第 10 个字节
int c;
if (fscanf(fp, "%c", &c) == 1) {printf("读取的字符是 %c\n", c);
} else {printf("读取失败\n");
}
fclose(fp);

6. ftell() 函数

ftell() 函数用于获取当前文件指针的位置。

示例代码:

FILE *fp = fopen("example.txt", "r");
int pos = ftell(fp); // 获取当前文件指针的位置
printf("当前文件指针位置是 %d\n", pos);
fclose(fp);

7. rewind() 函数

rewind() 函数用于将文件指针回退到起始位置。

示例代码:

FILE *fp = fopen("example.txt", "r");
fread(buffer, 1, 10, fp); // 读取前 10 个字节
rewind(fp); // 将文件指针回退到起始位置
fseek(fp, 10, SEEK_SET); // 将文件指针移到第 10 个字节
fclose(fp);

8. feof() 函数

feof() 函数用于检测是否已经达到了文件末尾。

示例代码:

FILE *fp = fopen("example.txt", "r");
int c;
while ((c = fgetc(fp)) != EOF) {printf("%c", c);
}
if (feof(fp)) {printf("已经达到了文件末尾\n");
} else {printf("文件读取错误\n");
}
fclose(fp);

9. ferror() 函数

ferror() 函数用于检测是否在打开文件时发生了错误。

示例代码:

FILE *fp = fopen("non_existent_file.txt", "r");
if (ferror(fp)) {printf("打开文件时发生错误\n");
} else {printf("打开文件成功\n");
}
fclose(fp);

10. clearerr() 函数

clearerr() 函数用于清除文件读写错误。

示例代码:

FILE *fp = fopen("example.txt", "r");
if (ferror(fp)) {clearerr(fp); // 清除文件读写错误printf("清除了文件读写错误\n");
} else {printf("没有文件读写错误\n");
}
fclose(fp);

以上是 C 语言中常用的文件输入/输出(I/O)函数的总结和使用示例。这些函数非常重要且广泛应用于各种程序中,我们在编写程序时应该熟悉它们的用法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3015629.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

从互联网医院源码到搭建:开发视频问诊小程序的技术解析

如今,视频问诊小程序作为医疗服务的一种新形式,正逐渐受到人们的关注和青睐。今天,小编将为您详解视频问诊小程序的开发流程。 一、背景介绍 互联网医院源码是视频问诊小程序开发的基础,它提供了一套完整的医疗服务系统框架&…

shpfile转GeoJSON;控制shp转GeoJSON的精度;如何获取GeoJSON;GeoJSON是什么有什么用;GeoJSON结构详解(带数据示例)

目录 一、GeoJSON是什么 二、GeoJSON的结构组成 2.1、点(Point)数据示例 2.2、线(LineString)数据示例 2.3、面(Polygon)数据示例 2.4、特征(Feature)数据示例 2.5、特征集合&…

谷歌推广和seo收录是一回事吗?

那自然不是一回事,谷歌推广一般指的是谷歌的广告服务,通过购买广告位,以便用户在谷歌搜索特定关键词时显示您的广告,这种方式通常基于点击收费,意味着您只有在有人点击您的广告时才需要支付费用。谷歌推广可以让您的网…

【系统分析师】系统分析部分

文章目录 1、系统分析概述2、详细调查2.1 为什么要做详细调查?2.2 详细调查的原则2.3 详细调查的内容2.4 详细调查的方法 3、现有系统分析3.1 获得系统的物理模型3.2 抽象出现有系统的逻辑模型3.3 建立新系统的逻辑模型3.4 建立新系统的物理模型 4、组织结构分析4.1…

如何选择适合的美国站群服务器:经济实惠而可靠的选择

如何选择适合的美国站群服务器:经济实惠而可靠的选择 在今天的数字化时代,选择适合的服务器对于个人网站或企业来说至关重要。一台性能稳定、价格实惠的美国站群服务器能够为您的网站提供所需的支持,但在选择之前,有一些关键因素…

项目计划书(Word原件)

项目开发计划包括项目描述、项目组织、成本预算、人力资源估算、设备资源计划、沟通计划、采购计划、风险计划、项目过程定义及项目的进度安排和里程碑、质量计划、数据管理计划、度量和分析计划、监控计划和培训计划等。 软件资料清单列表部分文档: 工作安排任务书…

Google Play开发者账号为什么会被封?如何解决关联账号问题?

Google Play是Google提供的一个应用商店,用户可以在其中下载并安装Android设备上的应用程序、电影、音乐、电子图书等。Google Play是Android平台上较大的应用市场,包含了数百万个应用程序和游戏。但是谷歌对于上架应用的审核越趋严格,开发者…

AGV无人叉车 | 我们为什么要投资“智慧生产”

AGV 作为一种智能工业车辆机器人,无人叉车充分融合叉车技术和AGV技术,近年来在仓储物流领域的应用逐步扩大。在传统叉车厂商、传统AGV厂商、物流集成商及仓储机器人企业等各方力量推动下,无人叉车市场在竞合中快速发展,并促使无人…

经典面试题---环形链表

1. 环形链表1. - 力扣(LeetCode) 要解决这道题,我们首先要挖掘出带环的链表与不带环的链表之间的差别。 以此,才能设计出算法来体现这种差别并判断。 二者最突出的不同,就是不带环的链表有尾结点,也就是说…

顺序表经典算法OJ题-- 力扣27,88

题1: 移除元素 题2: 合并两个有序数组 一:题目链接:. - 力扣(LetCode) 作答: 二:题目链接:. - 力扣(LeetCode) 作答: 感谢观看&am…

速看!这次主食冻干评测极可能被商家恶意举报~VE、希喂、PR真实测评

我发现还是有不少铲屎官局限于“进口最高贵”,盲目的迷信进口产品。看到进口粮就盲买,甚至过分的贬低国产品牌,将国产粮贴上“不靠谱”“不合格”等标签。 最近,我针对主食冻干的国内、国际标准,相关规范文件&#xf…

windows安装ElasticSearch以及踩坑

1.下载 elasticsearch地址:Past Releases of Elastic Stack Software | Elastichttps://www.elastic.co/cn/downloads/past-releases#elasticsearch IK分析器地址:infinilabs/analysis-ik: 🚌 The IK Analysis plugin integrates Lucene IK…

c++ 线程交叉场景试验

1.需求 1.处理一个列表的数据,要求按照列表的数据处理10个数据 2.可以使用多线程处理,但是针对每个线程,1~10的处理顺序不能变。 3.每个数据的处理必须原子,即只有一个线程可以针对某个数据进行处理,但是10个数据是可…

保姆级教程:从 0 到 1 将项目发布到 Maven 中央仓库【2024年5月】

前言 大家好,我叫阿杆,不叫阿轩 最近写了一个参数校验组件,名字叫 spel-validator,是基于 javax.validation 的一个扩展,目的是简化参数校验。 我把项目开源到了GitHub https://github.com/stick-i/spel-validator …

视频号小店是普通人的机会吗?看完你就明白了!

大家好,我是电商小V 视频号小店是普通人的机会吗?我可以很确定的说:视频号小店就是普通人的机会,并且是很大的机会, 首先就是视频号小店这个项目还没有自然流量的入口,是一个还没有完全开放私域电商的平台&…

HNU-人工智能-实验4-基于Resnet的分类器

前言 本实验是自选实验,可以在给定范围内选择。 我刚刚提交了实验报告,暂时不准备放出我自己的实验报告,大概在截止提交之后我再放。 之所以这么着急写blog,是想便利还没做实验的同学。 如果选择的也是这个“毒蘑菇识别”的分类器…

一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

电脑桌面备忘录在哪里设置?好用的电脑桌面备忘录软件

在日常工作和生活中,电脑桌面备忘录的重要性不言而喻。想象一下,在繁忙的工作中,你能够一眼看到桌面上的备忘录提醒,从而及时完成重要任务,或者在紧张的学习中,通过备忘录快速回顾关键知识点。一款优秀的电…

翻译《The Old New Thing》 - Understanding the consequences of WAIT_ABANDONED

Understanding the consequences of WAIT_ABANDONED - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20050912-14/?p34253 Raymond Chen 2005年09月12日 理解 WAIT_ABANDONED 的后果 简要 文章讨论了在多线程同步中,如果一个线程…

轨道交通巡检机器人的应用范围

在现代轨道交通系统的庞大网络中,无数的轨道、设备和设施交织在一起,如同一个精密的机器在高效运转。而在这背后,轨道交通巡检机器人正悄然登场,它们如同一个个智能的守护者,穿梭于各个场景之中。那么,这些…