字符读写函数是以字符(字节)为单位的读写函数。每次可从文件读出或向文件写入一个字符。
1.读字符函数fgetc()
fgetc()函数的功能是从指定的文件中读一个字符,函数调用的形式为:
例如:
ch=fgetc(fp);
其意义是从打开的文件fp中读取一个字符并送入ch中。
需要注意:
(1)在fgetc()函数调用中,读取的文件必须是以读或读写方式打开的。
(2)读取字符的结果也可以不向字符变量赋值,例如“fgetc(fp);”,但此时读出的字符不能保存。
(3)在文件内部有一个位置指针。用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc()函数后,该位置指针将向后移动一个字节,因此可连续多次使用fgetc()函数,读取多个字符。应注意文件指针和文件内部的位置指针并不相同。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。而文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针要向后移动,它不需在程序中定义说明,而是由系统自动设置的。
2.写字符函数fputc()
fputc()函数的功能是把一个字符写入指定的文件中,函数调用的形式为:
fputc(字符量,文件指针);
其中,待写入的字符量可以是字符常量或变量,例如:
fputc(′a′,fp);
其意义是把字符“a”写入fp所指向的文件中。
对于fputc()函数的使用也要说明几点:
(1)被写入的文件可以用写、读写或追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入的字符从文件首开始。如需保留原有文件内容,希望写入的字符以从文件末开始存放,必须以追加方式打开文件。被写入的文件若不存在,则创建该文件。
(2)每写入一个字符,文件内部位置指针向后移动一个字节。
(3)fputc()函数有一个返回值,如写入成功则返回写入的字符,否则返回一个EOF。可以此来判断写入是否成功。
【例10.2】从键盘输入一行字符,并将输入的这一行字符写入到一个文本文件内保存起来。
程序内容如下:
1 #include<stdio.h>
2 #include<stdlib.h>
3 int main()(www.xing528.com)
4 {
5 FILE*fp;
6 char ch;
7 if((fp=fopen("c:\\file2.txt","w+"))==NULL)
8 {
9 printf("Cannot open file2.txt!\n");
10 exit(0);
11 }
12 printf("input a string:\n");
13 ch=getchar();
14 while(ch!=’\n’)
15 {
16 fputc(ch,fp);
17 ch=getchar();
18 }
19 fclose(fp);
20 }
程序结果如图10.2所示:
图10.2 例10.2程序结果图
【例题中关键问题说明】
(1)程序以读写文本文件方式建立并打开文件file2.txt。
(2)若打开失败,则调用exit函数退出程序。exit函数参数类型为一整型数,参数为0表示正常退出。参数为非0表示非正常退出。在本程序中“exit(0)”语句也可用return语句代替。
(3)若打开文件成功,则从键盘读入一个字符后进入循环,当读入字符不为回车符时,则把该字符写入文件之中,然后继续从键盘读入下一字符。每输入一个字符,文件内部指针向后移动一个字节,写入完毕后,该指针指向文件末尾。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。