一、前言
读取文件时,可以是连续读一片内容,也可以一次读一个字符,本章讲解如何从文件中一次读一个字符。
二、fgetc函数与fputc函数
1、fgetc函数
fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。fgetc() 的用法为:
int fgetc (FILE *fp);
fp为文件指针,返回值成功则读取到的字符,失败或者读到末尾返回EOF。
注意:返回类型是int型,为什么是int型,因为EOF的值是-1(不一定是-1,但是肯定是负数),所以我们接收返回值的时候最好定义一个有符号类型变量来接收;我们知道,当fopen打开文件时,文件内部的位置指针(注意不是fp)指向第一个字符,当读到一个字符后,就会往下一个字符位移。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp = fopen("./2.txt","r+");
if(fp == NULL)
{
printf("fp is NULL!\n");
exit(1);
}
int c = fgetc(fp);
printf("%d %c\n",c,c);
fclose(fp);
return 0;
}
对 EOF 的说明
EOF 本来表示文件末尾,意味着读取结束,但是很多函数在读取出错时也返回 EOF,那么当返回 EOF 时,到底是文件读取完毕了还是读取出错了?我们可以借助 stdio.h 中的两个函数来判断,分别是 feof() 和 ferror()。
feof() 函数用来