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)函数的总结和使用示例。这些函数非常重要且广泛应用于各种程序中,我们在编写程序时应该熟悉它们的用法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

gradio图像复原界面改进

图像复原界面展示需要输入图像和复原图像在界面的清晰对比,修改两张图像为同样大小。 默认情况: intreface代码如下: interface gr.Interface(fnrestore, # 要调用的函数inputs[gr.Image(label"输入图像")], # 第一个输入&am…

AI大模型探索之路-训练篇16:大语言模型预训练-微调技术之LoRA

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

测试平台开发:Django开发实战之注册界面实现(上)

实现注册功能,大概包括以下几个步骤 1、设计ui ##字段 通过看数据库里面的user表里面的字段,可以大概知道需要几个字段: emailusernamepasswordpassword_confirm 生成简单的ui界面,复制这个html代码 然后在项目路径下面创建一…

22_Scala集合Seq

文章目录 Seq序列1.构建集合2.List集合元素拼接&&集合拼接3.可变Seq&&List3.1 ListBuffer创建3.2 增删改查3.3 相互转化 Appendix1.Scala起别名2.Seq底层3.关于运算符操作: :4.空集合的表示 Seq序列 –Seq表示有序,数据可重复的集合 1.构建集合 …

整体安全保障服务方案包括哪些方面?

整体安全保障服务方案是一套综合性的措施,旨在保护企业的网络、数据和资源免受各种威胁。主要包含检测、加固、应急保障、安全运营、攻防演练等多项核心能力与服务。 ​安全狗通过专业团队、工具以及专业运营流程,提出了新一代整体安全保障思路&#xff…

开源代码分享(28)-含分布式光伏的配电网集群划分和集群电压协调控制

参考文献: [1] Chai Y , Guo L , Wang C ,et al.Network Partition and Voltage Coordination Control for Distribution Networks With High Penetration of Distributed PV Units[J].IEEE Transactions on Power Systems, 2018:3396-3407.DOI:10.1109/TPWRS.2018…

【深度学习】实验1 波士顿房价预测

波士顿房价预测 代码 import numpy as np import matplotlib.pyplot as pltdef load_data():# 1.从文件导入数据datafile D:\Python\PythonProject\sklearn\housing.datadata np.fromfile(datafile, sep )# 每条数据包括14项,其中前面13项是影响因素&#xff0c…

长方形盒子能容纳定宽的长方形物体最大长度

问题 已知长方形盒子长度a和宽度b,放入一宽度w的长方形物体,求长方形物体最大长度L。 答案 MS Excel公式如下(其中B1a,B2b,B3w): L SQRT(B1^2B2^2)-B1*B2*B3*2/(B1^2B2^2)注意 当求得 L ≤…

时间复杂度与空间复杂度(上篇)

目录 前言时间复杂度 前言 算法在运行的过程中要消耗时间资源和空间资源 所以衡量一个算法的好坏要看空间复杂度和时间复杂度, 时间复杂度衡量一个算法的运行快慢 空间复杂度是一个算法运行所需要的额外的空间 一个算法中我们更关心的是时间复杂度 时间复杂度 时…

使用idea管理docker

写在前面 其实idea也提供了docker的管理功能,比如查看容器列表,启动容器,停止容器等,本文来看下如何管理本地的docker daemon和远程的dockers daemon。 1:管理本地 双击shift,录入service: …

24年审计师报名时间汇总所需材料提前准备

2024审计师报名本周开始(5月10日起),各地报名时间不一,报名指南整理好了! ✅全国报名时间汇总报名费用资格审核:P1~P2。 ✅2024年审计师考试科目: 《审计相关基础知识》和《审计理论与实务》 ✅…

如何创建微信小程序?只需3步完成小程序制作

微信,中国最大的社交媒体应用程序,几个月前推出了微信小程序,这一神奇的功能立即大受欢迎。这些小程序让在中国注册的商业实体所有者创建一个小程序来与微信用户互动。这些小程序不需要在用户手机上进行任何安装,只需通过微信应用…

HP Z620 服务器打开VTx虚拟技术

在使用Virtual Box的时候,虚拟主机启动报错:提示需要VTx。于是到bios里面去设置VTx。 这里有个小坑,就是HP 的bios配置里面,VTx不在常规的“System Configuration”、“Advanced”等地方,而是在“Security”菜单里&…

关于2024年上半年软考考试批次安排的通告

按照《2024年计算机技术与软件专业技术资格(水平)考试工作安排及有关事项的通知》(计考办〔2024〕1号)文件精神,结合各地机位实际,现将2024年上半年计算机软件资格考试有关安排通告如下: 一、考…

【排序算法】之冒泡排序

一、算法介绍 冒泡排序(Bubble Sort)是一种基础的排序算法,它的主要思想是通过重复遍历待排序的列表,比较每对相邻的元素并根据需要交换它们,使得每一遍遍历都能将未排序的最大(或最小)元素“冒…

RH 414膜电位荧光探针,161433-30-3,具有出色的荧光性质和高度专业化的反应原理

一、试剂信息 名称:RH 414膜电位荧光探针CAS号:161433-30-3结构式: 二、试剂内容 RH 414膜电位荧光探针是一种基于荧光共振能量转移(FRET)技术的荧光染料,具有出色的荧光性质和高度专业化的反应原理。…

Cordova 12 Android 不支持 http 原因探索

最近在升级 Cordova 到最新版本,升级完成后发现无法请求网络,研究了两次最终发现解决方案。 发现控制台中有日志输出,提示当前是 https ,无法直接访问 http。 [INFO:CONSOLE(225)] "Mixed Content: The page at https://lo…

如何更好地使用Kafka? - 运行监控篇

要确保Kafka在使用过程中的稳定性,需要从kafka在业务中的使用周期进行依次保障。主要可以分为:事先预防(通过规范的使用、开发,预防问题产生)、运行时监控(保障集群稳定,出问题能及时发现&#…

tf2使用savemodel保存之后转化为onnx适合进行om模型部署

tf2使用savemodel保存之后转化为onnx适合进行om模型部署 tf保存为kears框架h5文件将h5转化为savemodel格式,方便部署查看模型架构将savemodel转化为onnx格式使用netrononnx模型细微处理代码转化为om以及推理代码,要么使用midstudio tf保存为kears框架h5文…

设计严谨,思路绝妙!这篇高级孟德尔随机化研究:药靶、共定位,发文一区(IF=8.9)!...

现在越来越多的学者在用孟德尔随机化高级方法发文,今天我们看的这篇这篇药靶孟德尔随机化,还用了共定位分析方法,亮点在于它的设计严谨,思路绝妙,一起看下去吧! 2024年4月21日,四川大学华西医院…