上一章节主要讲解结构体内存对齐问题,本章节主要讲解C语言文件操作,全面解析C语言文件操作。
C语言文件
通常,文件用于在计算机中存储用户数据。换句话说,计算机使用文件存储数据。我们可以如下定义:文件是存储在辅助存储器(如计算机的haddisk)中的数据的集合。
C语言支持两种类型的文件,它们如下:
文本文件(或)ASCII文件
二进制文件
包含数字,字母和符号等数据的ASCII码的文件称为文本文件(或)ASCII文件。
二进制文件含字节(0和1)形式的数据的文件称为二进制文件。通常二进制文件是文本文件的编译版本。
C语言文件操作以下是用C语言编写的文件上执行的操作.
创建(或)打开文件
从文件读取数据
将数据写入文件
关闭文件
以上所有操作都是使用C语言中可用的文件处理功能执行的。我们将讨论文件处理功能。
打开文件要创建新文件或打开现有文件,我们需要创建FILE类型的文件指针。以下是用于创建文件指针的示例代码
FILE *f_ptr ;
我们使用预定义的方法fopen()创建新文件或打开现有文件。可以使用不同的模式打开文件。考虑以下代码:
FILE *f_ptr ; f_ptr = fopen("abc.txt", "w") ;
上面的示例代码创建一个名为abc.txt的新文件(如果该文件不存在),否则将以写入模式打开。在C语言中,可以使用不同的模式来打开文件,这些模式如下所示:
注意二进制文件读写请使用rb,wb,ab,rb +,wb +和ab +
w方式打开文件,文件不存在具有创建文件的功能,文件存在清空文件内容打开
a方式打开文件,追加模式打开文件,不清空文件中的数据
C语言存在以下文件读写操作。
fgetc()+fputc():字符方式读写
fgets()+fputs():字符串方式读写
fscanf()+fprintf():格式化读写
fread()+fwrite():字节流读写
注意:一般文件打开, 是要判断打开文件是否成功的,因为篇幅问题这里就省略掉
C语言中的字符串读写方式示例程序
注意:字符串读写,会为读取的内容末尾加上'\n'
C语言中的格式化读写方式示例程序格式化读写其实是一种表格数据
C语言中的字节流读写方式示例程序文本文件中显示的内容是乱码,很正常的情况,能成功读写出来即可。
文件指针操作函数fseek函数
函数原型:int fseek(FILE *stream, long offset, int pos);
stream:文件指针。
offset:偏移量。
pos:指偏移方式。有如下三种值可选:
SEEK_SET 从距文件开头offset 位移量为新的读写位置.
SEEK_CUR 以目前的读写位置往后增加offset 个位移量.
SEEK_END 将读写位置指向文件尾后再增加offset 个位移量.
说明:当pos值为SEEK_CUR 或SEEK_END 时, 参数offset 允许负 值的 出现.
给出两种比较特别的使用方式
将文件指针移动到开头:fseek(fd, 0, SEEK_SET);
将文件指针移动到结尾:fseek(fd, 0, SEEK_END);
返回值:调用成功返回0,失败返回-1,errno会存放错误代码。
ftell函数
函数原型:long ftell(FILE *stream);
返回值:文件指针相对于文件开头的偏移量。
rewind函数函数原型:void rewind(FILE *stream);
feof函数
函数原型:int feof(FILE *stream);
返回值:如果已经到达文件的结尾(已经将文件的最后一个字符都读走了),返回0,否则返回非0数字。
EOF
是文本文件结束的标志。在文本文件中,数据 以 字符的ASCⅡ码值的形式存放,普通字符的ASCⅡ码的范围是32到127(十进制),EOF的16进制代码为0XFF(十进制为-1),因此可以用EOF作为文件的结束标识。当把数据以二进制的形式存放到文件中时,就有可能会将数字-1存放到文件中,此时继续根据EOF来判断文件是否结束就会出问题,为了解决这个问题,ASCI C 就提供了feof 函数。
尾言作业:把以下表格数据存储到文件(信息数可少量,词条需齐全)
哪里有什么老天的眷顾,所谓的幸运和成功都源自你自身的努力和付出。请记住,你现在多走的每一步都在拉开着你和别人的差距。要做,就做生活的强者。
好了今天的知识到这里就结束了!如果有学到知识的同学们,可以留言学到了哦!如果可以的话也是可以一键三连,关注加转发和点赞。
本文分享自微信公众号 - C语言编程基础(goodStudyCode)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。