电子技术与软件工程
Electronic Technology & Software Engineering
软件开发与应用Software Development And Application
一图归纳C
语言中文件的输入输出函数
任波阳
(山东科技大学山东省青岛市266000 )
摘要:本文通过输入输出关系图,加深对“输入”“输出”概念及相关知识点的理解,同时总结归纳各类“输入”“输出”函数的 用法,使文件学习更加系统,透彻。
关键词:C语言;输入输出;格式控制
1输入输出的关系图
在编程学习中,输入与输出一直是较难理解且容易混淆的知识 点,图1为各类“输入”“输出”的关系图。
在计算机语言中,文件与键盘、屏幕、打印机、鼠标等,都 属于外围设备。其中从内存中写数据至文本文件,为输出;从文 本文件内读取数据至内存中,为输入。从键盘、鼠标等外围设备 向内存中存储信息,为输入;使内存中的信息通过屏幕、打印机 等设备显示出来,为输出。C语言中,可以将信息从内存输出到文 件中的函数有:fwrite、fprintf、fputc、fputs、putw;可以将信息从 文件输入到内存中的函数有:fread、fscanf、fgetc、fgets、getw;可以将信息通过键盘等外围设备输入到内存中的函数有:scanf、getcha^g e ts可以将信息从内存输出到屏幕等外围设备上的函数有:printf、putchar、puts。
C语H函数库中的“标准输入输出函数”包括:格式输入输出 函数printf和scanf,字符输入输出函数putchar和getchar,字符串输 入输出函数puts和gets。C语言函数库中的“文件读/写(输入输 出)函数”包括:格式化读/写函数fscanf和fprimf,字符读/写函数fgetc和fputc,字符串读/写函数fgets和fputs,字读/写函数 getw和putw函数,数据块读/写函数fread和fwrite。在使用输入输出函数时,要在程序文件的开头用预处理命令include “stdio.h”
把头文件放在本程序中(有些C编译系统考虑频繁地使用printf和scanf,允许在只适用这两函数的情况下可以省去该命令)。
2各类“输入”函数的总结
2.1从键盘等外围设备向内存中输入的函数
通过键盘向内存输入信息是C语言学习中较为常见的•种输
入,主要用到“scanf”函数。
(1) scanf函数:格式输入函数,格式:scanf( “格式控制”,地址列表);
按“格式控制”中规定的格式,在键盘上输入各地址表列的数
据,在输入数据时普通字符要原样输入。
格式控制:用双引号括起来的字符串是“格式控制”字符串,
它包含的两种信息为“格式转换由‘%’和格式字符组成”“需原
样输出的字符也写在格式控制内”。
地址列表:由若干个变量地址组成,既可以是变量的地址,也
可以是字符串的首地址。
使用scanf函数注意事项:scanf函数中的输入项只能是地址表
达式,而不能是变量名或其他内容。
图1:C语言输入输出关系图
37
软件开发与应用
Software Development And Application
电子技术与软件工程Electronic Technology & Software Engineering
由键盘向内存中输入信息时,也会用到“getchar” “gets”函数,它们与scanf函数的区别如下。
(2) getchar函数:标准库函数,格式:getchar();
用于输入一个字符。该函数没有参数,但括号不能省略。
例如:
char a;
a=getchar();
说明:getchar函数只能用于输入单个字符,且一次只能输入一 个字符。
(3) gets函数:标准库函数,格式:gets(str);
用于输入一个字符串。接收从键盘输入的一个字符串,存放在 字符数组s tr中。
2. 2从文件向内存输入的函数
文件操作是C语言中一个相对独立的知识模块,而从文件向内 存读入信息为文件学习中十分重要的一部分,现总结文件中主要的 输入函数如下:
(1)fread:文件的读函数(块输入函数),格式;fread(p,size,n,fj3); (p为某类型指针;size为某类型数据存储空间的字节数;n为此次 从文件中读取的数据项数;fp为文件指针变量。)
fread函数的作用是把磁盘(文件)中的数据读取到内存中(从 fp所指向的文件中,读取n个数据项,存放到p所指向的存储区域)。
(2) fscanf:格式化输入函数,格式:fscanf(fp,格式控制串,地址表);
按格式控制串所描述的格式,从印所指向的文本文件中读取 数据,送到指定的内存地址单元中,使用方法和scanf函数相似。
(3) fgetc函数:文件的操作函数,格式:fgetc(fp);
从指定文件中读取一个字节的代码值,字符读函数。
(4) fgets 函数:格式:fgets(str,n,fp);
从fp指向的文件中读取n-1个字符放到内存中以str为首地址 的区域里,字符串读函数。
(5) getw函数:字输入函数,格式:getw(fp);
从文件指针帀所指文件中,读当前位置的下一个整数,字读 函数。
注意:C语言对文件的操作流程为:定义文件指针变量、打开 文件、读写文件和关闭文件,分别要用到结构类型FILE、库函数 fopen(文件的打开函数)和库函数fclose (文件的关闭函数),在 读写时使用到fscanf和fprintf等库函数。
3各类“输出”函数的总结
3.1从内存向显示器等外围设备输出的函数
(1) printf函数:格式输出函数,格式:printf ( “格式控制”,输出列表)。
主要功能是向标准输出设备按规定格式输出信息,按“格式控 制”中的格式说明符依次输出“输出列表”中的各项,普通字符原 样输出。
格式控制:用双引号括起来的字符串是“格式控制”字符串,它包含的两种信息为“格式转换由‘%’和格式字符组成”“需原 样输出的字符也写在格式控制内”。
输出列表:需要输出的一些数据,可以是常量、变量或表达式。输出列表中的各输出项用逗号隔开。
(2) putchar函数:标准库函数,格式:putchar(ch)。
向屏幕输出一个字符(这里的c h可以是字符型或整型变量或 常量,也可以是一个转义字符)。
说明:putchar函数只能用于输出单个字符。
(3) puts函数:标准库函数,格式:puts(str)。
在屏幕上输出字符串str。该函数没有返回值。
3. 2从内存向文件输出的函数
(1)fwrite:文件的写函数(块输出函数),格式:fwrite (p,size,n,fp);(p为某类型指针;size为某类型数据存储空间的字节数;n为此次写入文件的数据项数:fp为文件指针变量。)
f\vrite函数的作用是把内存中的数据写到磁盘(文件)中(将 p指向的存储区中n个数据项写入fp所指向
的文件)。
(2) fprintf••格式化输出函数,格式:fprintf(fjp,格式控制串,输出项参数表);
按指定格式向文本文件中写入数据,和printf函数作用相仿。
(3) fputc:文件的操作函数,格式:f^utc(ch,f^);
把字符c h写到指定文件中(c h可以是字符常量、字符变量),字符写函数。
(4) fputs 函数:格式:fputs(str,fjj);
将放在s tr中的字符串输出到指定文件中,字符串写函数。
(5) putw函数:字输出函数,格式:putw(i,fp);
输出一个整数i到文件中,字写函数。
注意:文件部分的格式化读/写函数fscanf与函数 printf、scanf的作用相仿,它们的区别在于fprintf和fscanf函数的 读/写对象不是终端而是磁盘文件。
4输出函数printf、sprintf、fprintf对比分析
(1) printf函数是把格式化字符串输出到标准显示设备(一般 是屏幕)。
(2) sprintf函数是把格式化字符串输出到指定字符串,所以 参数比printf多了个char*,那就是目标字符串的地址。
(3) fprintf函数是把格式化字符串输出到指定文件中,所以 参数比printf多了个文件指针File*,那是目标文件的文件描述符(文 件流指针)。
通过学习以上内容,可以总结出C语言环境中“输入”“输出”函数的相关含义和特点,并介绍了用C语言中的文件操作,实现程 序输入、输出数据的文件化,通过对比分析,便于理解与记忆。对 各类编程语言“输入”“输出”部分的学习都有极大的帮助。当然,C语言中文件的应用还有很多重要的内容,需要我们去开发和探索,这样才能更加体现程序设计的作用和魅力。
参考文献
[1] 百度百科.
[2] 谭浩强.C程序设计[M].北京清华大学出版社,1999.
[3] 孙承爱•赵卫东.程序设计基础基于C语言[M].科学出
版社,2010.
[4] 蔡启先.计算机程序设计基础(C语言版)[M].清华大学出版社,
fgets和fgetc的区别2012.
[5] 李丽娟.C语言程序设计教程.第2版[M].人民邮电出版
社,2009.
[6] 常鑫.C语言程序设计的输入输出[J].内蒙古科技与经济,
2012.
作者简介
任波阳(2000-),女,山东省淄博市人。统计学本科。研究方向 为计算机软件。
38

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。