首页 理论教育 C语言程序设计:使用fgetc和fputc函数快速读写字符

C语言程序设计:使用fgetc和fputc函数快速读写字符

时间:2023-10-20 理论教育 版权反馈
【摘要】:对于fgetc函数的使用有以下几点说明:在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。使用fgetc函数后,该位置指针将向后移动一个字节。因此可连续多次使用fgetc函数,读取多个字符。如果存在,利用fgetc函数从infile文件逐个读取字符,然后利用fputc函数把文件中字符逐个写入输出文件outfile。

C语言程序设计:使用fgetc和fputc函数快速读写字符

1.fgetc 函数

例如:

说明:

(1)读完一个字符后,文件的当前位置指针加1;

(2)输入成功返回ch,否则返回EOF;

(3)在读字符时如果遇到文件结束符,函数返回一个文件结束标志EOF(即-1),它不是可输出字符,不能在屏幕上显示,它只适用于ASCII 码(文本)文件,因为字符的ASCII 码不可能出现"-1",不适用于二进制文件。

【例11.1】读入磁盘文件c 1.txt,并在屏幕上输出。

程序代码:

运行结果:

程序讲解:

本例程序的功能是从文件中逐个读取字符,在屏幕上进行显示。程序定义了文件指针fp,以读文本文件方式打开文件"d:\example\c1.txt",并使fp指向该文件。如果打开文件出错,则给出提示并退出程序;否则先读出一个字符,然后进入循环判断读出的字符,只要读出的字符不是文件结束标志(每个文件末有一结束标志EOF)就把该字符显示在屏幕上,再读入下一字符。每读一次,文件内部的位置指针向后移动一个字符,文件结束时,该指针指向EOF时,则循环结束,关闭文件。执行本程序将显示整个文件。

对于fgetc函数的使用有以下几点说明:

(1)在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。

(2)读取字符的结果也可以不向字符变量赋值。例如:

但是这种方式读出的字符不能保存。

(3)在文件内部有一个位置指针,用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc函数后,该位置指针将向后移动一个字节。因此可连续多次使用fgetc函数,读取多个字符。

注意:文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针都向后移动,它不需要在程序中定义说明,而是由系统自动设置的。exit(0)函数的作用是关闭所有文件,停止正在运行的过程,以便程序员查错。

2.fputc 函数f(www.xing528.com)

putc函数的功能是把一个字符写入指定的文件中。函数调用的形式为:

例如:

说明:

(1)ch可以是单个字符常量或字符变量,fp为文件指针;

(2)写完一个字符后,文件的当前位置指针加1;

(3)输出成功返回ch,否则返回EOF。

【例11.2】从键盘输入一行字符,写入一个文件,再把该文件内容读出显示在屏幕上。

程序代码:

运行结果:

程序讲解:

程序中"if((fp=fopen("D:\\example\\file1.txt"," w"))==NULL)"以只写文本文件方式打开文件file1.txt。程序中第15行语句"ch=getchar();"从键盘读入一个字符后进入循环,当读入的字符不为回车符时,则把该字符写入文件之中,然后继续从键盘读入下一字符。每输入一个字符,文件内部位置指针向后移动一个字节。写入完毕,该指针已指向文件末,最后关闭文件。

【例11.3】将一个磁盘文件中的数据复制到另一个磁盘文件中。

程序代码:

运行结果:

程序讲解:

本例程序中定义了两个字符数组infile 和outfile,分别表示读入文件名和写入文件名,文件名从键盘进行输入。"if((in=fopen(infile,"r"))==NULL)"判断输入文件名是否存在,如果不存在,退出系统。如果存在,利用fgetc函数从infile文件逐个读取字符,然后利用fputc函数把文件中字符逐个写入输出文件outfile。直到文件指针in 所指文件infile 达到结尾处,停止写入。

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

我要反馈