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

news2024/11/24 15:36:23

在这里插入图片描述

  • 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://www.coloradmin.cn/o/1649241.html

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

相关文章

SparkSQL与Hive整合 、SparkSQL函数操作

SparkSQL与Hive整合 SparkSQL和Hive的整合,是一种比较常见的关联处理方式,SparkSQL加载Hive中的数据进行业务处理,同时将计算结果落地回Hive中。 整合需要注意的地方 1)需要引入hive的hive-site.xml,添加classpath目录下面即可…

国家信息安全水平等级考试NISP一级题目(包含答案)

国家信息安全水平等级考试NISP一级题目 有任何想要咨询NISP都可以私信博主 1. 下列关于用户口令说法错误的是( )。 A.口令不能设置为空 B.口令长度越长,安全性越高 C.复杂口令安全性足够高,不需要定期修改 D.口令认证…

软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github gitee 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^) 想看更多 那就点个关注吧 我会尽力带来有趣的内容 本文档是一年前学后记得笔记 现在居然还记得很清楚 基于…

ASV1000视频监控平台:接入支持JT808标准的设备

目录 一、JT/T 808标准简介 (一)概述 (二)标准内容简介 1、消息分类 2、位置信息 3、报警信息 4、车辆控制 5、数据转发 二、在ASV1000上通过JT808添加设备 (一)登录视频监控平台管理端 &#x…

深度学习之基于Vgg16卷积神经网络乳腺癌诊断系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于VGG16卷积神经网络的乳腺癌诊断系统项目是一个结合深度学习技术和医学图像处理的创新项目,旨在提高…

嵌入式全栈开发学习笔记---C语言笔试复习大全14

目录 指针初级 指针的概念 指针类型 指针类型长度 指针的定义 通过指针访问数据 p1和*p1的区别 指针做函数参数 上一篇复习了8道编程题,这篇开始正式复习之指针! 说明:我们学过单片机的一般都是有C语言基础的了,网上关于C…

Sarcasm detection论文解析 |用于微博讽刺检测的上下文增强卷积神经网络

论文地址 论文地址:Context-augmented convolutional neural networks for twitter sarcasm detection - ScienceDirect 论文首页 笔记大纲 用于微博讽刺检测的上下文增强卷积神经网络 📅出版年份:2018 📖出版期刊:Neurocomputing &#x1f…

Golang | Leetcode Golang题解之第71题简化路径

题目: 题解: func simplifyPath(path string) string {stack : []string{}for _, name : range strings.Split(path, "/") {if name ".." {if len(stack) > 0 {stack stack[:len(stack)-1]}} else if name ! "" &am…

以中国为目标的DinodasRAT Linux后门攻击场景复现

概述 在上一篇《以中国为目标的DinodasRAT Linux后门剖析及通信解密尝试》文章中,笔者对DinodasRAT Linux后门的功能及通信数据包进行了简单剖析,实现了对DinodasRAT Linux后门心跳数据包的解密尝试。 虽然目前可对DinodasRAT Linux后门的通信数据包进…

Davinci工程开发方法论

基本概念 Flash Driver是下载到RAM里面的bin文件 Boot Manager是ROM上启动运行的第一个实例,可以是独立的bin文件,可以是集成在FBL里面。 Bootloader存储在ROM里面的bin文件 Demo Appl一个示例模板,用来跳转到Bootloader的,也是一…

OpenCV 入门(五) —— 人脸识别模型训练与 Windows 下的人脸识别

OpenCV 入门系列: OpenCV 入门(一)—— OpenCV 基础 OpenCV 入门(二)—— 车牌定位 OpenCV 入门(三)—— 车牌筛选 OpenCV 入门(四)—— 车牌号识别 OpenCV 入门&#xf…

【负载均衡在线OJ项目日记】项目简介

目录 前言 什么是负载均衡 所用的技术和开发环境 所用技术 开发环境 项目的宏观结构 leetcode 结构 结构 编写思路 前言 从C语言的文章到现在Linux网络部分,我已经涉猎了很多知识;终于在今天我要开始搞项目了,通过项目我也可以开始…

《Fundamentals of Power Electronics》——一些常用变换器的正则电路参数值

对于理想的CCM PWM dc-dc转换器,其包含一个电感和电容,正则模型有效的低通滤波器需要包含一个电感和一个电容。正则模型简化为如下图所示。 假设电容与负载直接相连。基础的buck、boost和buck-boost转换器的参数值如下表所示。 该模型可以用传统的线性电…

【贪心算法】最小生成树Kruskal算法Python实现

文章目录 [toc]问题描述最小生成树的性质证明 Kruskal算法Python实现时间复杂性 问题描述 设 G ( V , E ) G (V , E) G(V,E)是无向连通带权图, E E E中每条边 ( v , w ) (v , w) (v,w)的权为 c [ v ] [ w ] c[v][w] c[v][w]如果 G G G的一个子图 G ′ G^{} G′是…

贪心问题 难度[普及-]一赏

目录 #小A的糖果 删数问题 陶陶摘苹果(升级版) P5019 NOIP2018 提高组 铺设道路 小A的糖果 原文链接: P3817 小A的糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 小 A 有 n 个糖果盒,第 i 个盒中有 a_i 颗糖果。 小 A 每…

【吃透Java手写】Spring(下)-AOP-事务及传播原理

【吃透Java手写】Spring(下)AOP-事务及传播原理 6 AOP模拟实现6.1 AOP工作流程6.2 定义dao接口与实现类6.3 初始化后逻辑6.4 原生Spring的方法6.4.1 实现类6.4.2 定义通知类,定义切入点表达式、配置切面6.4.3 在配置类中进行Spring注解包扫描…

Windows系统安装MySQL数据库详细教程

【确认本地是否安装mysql】 (1)按【winr】快捷键打开运行; (2)输入services.msc,点击【确定】; (3)在打开的服务列表中查找mysql服务,如果没有mysql服务&am…

计算机组成结构—虚拟存储器

目录 一、虚拟存储器的基本概念 二、页式虚拟存储器 1.页表 2.快表(TLB) 3.具有 TLB 和 Cache 的多级存储系统 三、段式虚拟存储器 四、段页式虚拟存储器 五、虚拟存储器和Cache比较 早期的计算机,CPU 是直接操作主存的,也就是运行程序时&#xf…

工业光源环形系列一高均匀条形光源特点

产品特点 ◆可以根据检测需求随意调整照射角度: ◆可以根据检测需求选择光源颜色: ◆多个条形光源可以自由组合: ◆使用贴片灯珠,均匀性更好。

使用Docker安装MySql数据库

大家好,今天给大家分享一下如何使用docker安装MySql数据库,关于docker的安装和常用命令,大家可以参考下面两篇文章,本文中不做过多描述。 Docker在Windows与CentOS上的安装 Docker常用命令 一、拉取MySql数据库镜像 docker pul…