Logo

郎哥编程

第50讲:读取文本文件

2026-04-15 19

C语言 对文件的写入和读取涉及到流的概念,写入为输出流,读取为输入流。如何理解流的概念呢?可以把流看成流动的自来水,打开水龙头,自来水就会通过自来水管从水源流到用户家中,同样的道理,水库中的水也会通过管道流入到水源。从水源流出到用户住家为自来水的输出流,从水库流入到水源为自来水的输入流,只有这样,自来水才能源源不断地输送到用户家中。

如果把水源看成文件,用户住家为读取文件的函数,水库为写入文件的函数,就很容易理解C语言的输入与输出流了。当C语言的写入函数(水库)需要将数据写入到文件(水源)时,需要建立一条从写入函数(水库)到文件(水源)的通道,这个通道就是输入流;当C语言的读取函数(用户住家)需要读取文件(水源)时,也需要建立一条从文件(水源)到读取函数(用户住家)的通道,这个通道就是输出流。

C语言的读写函数在读写文件时,并不会直接把数据写入到文件,或直接读取到程序接收文件数据的变量,它会建立一个文件缓冲区用来存放读写的数据。当进行文件读取时,读取函数先打开数据流,将磁盘上的文件信息拷贝到缓冲区内,然后程序再从缓冲区中读取所需数据。当写入函数将数据写入文件时,并不会马上写入磁盘中,而是先写入缓冲区,只有在缓冲区已满或“关闭文件”时,才会将数据写入磁盘文件。

函数声明

int fgetc ( FILE * stream );

返回指定输入流的内部文件位置指示器当前指向的字符。然后,内部文件位置指示器前进到下一个字符。如果读取到文件尾部或发生读取错误,函数返回EOF。

函数声明

char * fgets ( char * str, int num, FILE * stream );

从输入流中读取字符并将其作为C字符串存储到str中,直到读取(num-1)个字符或到达换行符或文件结尾。读取成功返回str,否则返回空指针。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论