文章目录
- 1 函数原型
- 2 参数
- 3 返回值
- 4 比较
- 5 示例
- 5.1 示例1
- 5.2 示例2
1 函数原型
fgetc():从指定流stream中读取一个字符,函数原型如下:
int fgetc(FILE *stream)
2 参数
fgetc()函数只有一个参数stream:
- 参数stream是一个指向FILE类型结构的指针;stream指定了fgetc()函数要读取的流,可以是文件流,也可以是标准输入流;当是文件流时,stream等于fopen()函数的返回值;当是标准输入流时,stream等于stdin。
3 返回值
fgetc()函数的返回值类型是int型:
- 读取成功,返回读取字符的ASCII码值,范围0~127;
- 读取失败,返回EOF。
C语言标准描述如下:
1. fgetc and _fgetchar return the character read as an int or return EOF to indicate an error or end of file.
4 比较
fgetc()函数和getchar()函数的工作原理类似,差异如下:
- fgetc()函数从指定流stream中读取字符;
- getchar()函数从标准输入流stdin中读取字符;
- 将fgetc()函数的参数stream指定为stdin,则fgetc()函数的功能和getchar()函数的功能完全相同。
5 示例
5.1 示例1
从文件1.txt中读取字符,直至文件末尾,代码如下所示:
int main ()
{
FILE* fp;
char ch;
if ((fp = fopen("1.txt", "r")) == NULL)
{
printf("Failed to open file.\n");
exit(1);
}
while (1)
{
ch = fgetc(fp);
if(ch != EOF)
{
putchar(ch);
}
else
{
break;
}
}
printf("\n");
fclose(fp);
return 0;
}
文件内容如下图所示:
代码运行结果如下图所示:
5.2 示例2
将stream指定为标准输入流stdin,读取字符串"hello world"并打印,代码如下所示:
int main()
{
while ((putchar(fgetc(stdin))) != '\n');
return 0;
}
代码运行结果如下图所示: