首页 理论教育 使用fgetc()和fputc()读写单个字符

使用fgetc()和fputc()读写单个字符

时间:2023-10-29 理论教育 版权反馈
【摘要】:读取字符的结果也可以不向字符变量赋值,例如“fgetc;”,但此时读出的字符不能保存。使用fgetc()函数后,该位置指针将向后移动一个字节,因此可连续多次使用fgetc()函数,读取多个字符。fputc()函数有一个返回值,如写入成功则返回写入的字符,否则返回一个EOF。

使用fgetc()和fputc()读写单个字符

字符读写函数是以字符(字节)为单位的读写函数。每次可从文件读出或向文件写入一个字符。

1.读字符函数fgetc()

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)若打开文件成功,则从键盘读入一个字符后进入循环,当读入字符不为回车符时,则把该字符写入文件之中,然后继续从键盘读入下一字符。每输入一个字符,文件内部指针向后移动一个字节,写入完毕后,该指针指向文件末尾。

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

我要反馈