理论教育 C语言程序设计-使用fscanf和fprintf

C语言程序设计-使用fscanf和fprintf

时间:2023-11-02 理论教育 版权反馈
【摘要】:在前面的章节中,已大量使用函数scanf和printf,这两个函数面向终端实现输入和输出。接下来将要介绍的函数fscanf和fprintf则面向文件实现输入和输出。函数fscanf和fprintf面向的文件一般是指存储在磁盘上的文本文件。如果读取成功,则fscanf函数的返回值是3。

C语言程序设计-使用fscanf和fprintf

在前面的章节中,已大量使用函数scanf和printf,这两个函数面向终端(键盘和显示器)实现输入和输出。接下来将要介绍的函数fscanf和fprintf则面向文件实现输入和输出。

函数fscanf和fprintf面向的文件一般是指存储在磁盘上的文本文件。如果将文件类型指针换成特殊的文件类型指针stdin(指向键盘)和stdout(指向显示器),也可将输入/输出面向终端(键盘和显示器)。

1.按格式读取数据函数fscanf

函数fscanf的使用格式如下:

函数fscanf的功能是按照格式字符串指定的格式,从文件类型指针所指向的文件的当前位置读取数据,按照输入项地址列表的顺序,将读取到的数据存入地址列表指定的内存单元

若读取数据成功,则函数fscanf的返回值是读取的数据个数;若遇到文件结束符或读取不成功,则返回EOF(-1)。

例如,下面的代码表示从fp所指向的文件中,按“%c,%d,%f”规定的格式读取3个值,将这3个值分别存储在地址&s、&n、&x对应的内存单元中,也就是将读取的3个值分别赋给变量s、n、x。如果读取成功,则fscanf函数的返回值是3。

以下两种输入形式是等价的。第一种在前面章节中已多次使用;第二种是本小节介绍的,stdin代表标准输入文件(如键盘)。

这两种形式都是按“格式字符串”规定的格式,从终端(如键盘)输入(读取)数据并存入“输入项地址列表”指定的内存单元。

2.按格式输出数据函数fprintf(www.daowen.com)

函数fprintf的使用格式如下:

函数fprintf的功能是按格式字符串指定的格式,将输出项列表中指定的各项的值写入文件类型指针所指向的文件的当前位置。

若写入成功,则函数fprintf的返回值是写入文件的字符个数(或字节个数)。若写入不成功,则返回EOF(-1)。

例如,下面的代码表示按照格式“%c,%d,%f”从文件的当前位置开始,将s、n、x的值写入fp所指向的文件中。

以下两种输出形式是等价。第一种在前面章节中已多次使用;第二种是本小节介绍的,stdout代表标准输出文件(如显示器)。

这两种形式都是按照格式字符串规定的格式向终端(如显示器)输出(写入)数据。

例10.7 从键盘输入N名学生的身高(厘米),存放在数组a中,将这些身高值写入d盘根目录下的student子目录中新建的文件height.txt中。然后从文件height.txt中读取这些身高值并存入数组b,使用数组b计算身高的最大值和最小值。

【分析】可以使用函数fprintf将学生的身高值写入文件height.txt,使用函数fscanf读出学生的身高值。注意:写入的格式与读出的格式要相同。由于身高的厘米数一般是三位整数,所以使用“%3d”的格式。

程序代码如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈