格式化读写文件

在学习C语言的终端IO操作时,我们可以调用scanf()函数从终端读取用户键盘的输入数据,调用printf()函数输出到终端显示。

那么,对于文件,C语言提供了fscanf()函数从文件提取格式化数据。调用fprintf()格式化数据输出到文件中。函数的定义如下:

int fscanf(FILE *stream, const char *format, ...);

int fprintf(FILE *stream, const char *format, ...);

这两个函数的使用与scanf()、printf()函数类似,只是第一个参数是FILE*类型的文件指针,指向一个打开的文件。所以,fscanf()函数从文件指针stream指向的文件读取数据,fprintf()把数据格式化输出到文件指针stream指向的文件。

如下是一个程序测试例子:

c语言文件操作三大特征(如何格式读写文件)(1)

程序运行结果如下:

c语言文件操作三大特征(如何格式读写文件)(2)

可以看到,程序打开test.txt文件,然后,格式化数据,写入到文件中。所以,可以查看test.txt文件的内容,如下:

c语言文件操作三大特征(如何格式读写文件)(3)

然后,程序重新打开test.txt文件,调用fscanf()函数从文件中格式化提取数据,并存放到name, age, addr变量中。最终,输出变量的数据,就是test.txt文件中格式化存储的数据。

3.8 检测文件指针对象

C语言提供了feof()函数,用于判断文件指针是否已经到文件结尾。函数的定义如下:

int feof(FILE *stream);

函数说明:检测stream文件指针是否已经到文件结尾。如果已经到文件结尾,则返回1,否则,返回0。

如下是一个程序测试例子:

c语言文件操作三大特征(如何格式读写文件)(4)

在编译运行程序之前,我们先给test.txt文件填充如下的数据:

c语言文件操作三大特征(如何格式读写文件)(5)

此时,test.txt文件中有3行字符串。然后,编译运行程序如下:

c语言文件操作三大特征(如何格式读写文件)(6)

可以看到,程序读取完test.txt文件中所有的数据。通过while()函数来循环读取,使用feof()函数来检测文件指针是否到了文件的末尾。如果还没有到文件末尾,继续读取文件。

当读取到文件的末尾时,结束循环读取文件的操作。

,