fgetc, getc
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    | 在标头  <stdio.h>定义 | ||
| int fgetc( FILE *stream ); | (1) | |
| int getc( FILE *stream ); | (2) | |
1) 从给定的输入流读取下一个字符。
2) 同 
fgetc ,除了若 getc 实现为宏,则它可能求值 stream 多于一次,所以实参始终不应为带有副作用的表达式。参数
| stream | - | 读取字符的来源 | 
返回值
成功时为作为 unsigned char 获得并转换为 int 的字符,失败时为 EOF 。
若文件尾条件导致失败,则另外设置 stream 上的文件尾指示器(见 feof() )。若某些其他错误导致失败,则设置 stream 上的错误指示器(见 ferror() )。
示例
运行此代码
#include <stdio.h> #include <stdlib.h> int main(void) { FILE* fp = fopen("test.txt", "r"); if(!fp) { perror("File opening failed"); return EXIT_FAILURE; } int c; // 注意:int,非char,要求处理EOF while ((c = fgetc(fp)) != EOF) { // 标准C I/O读取文件循环 putchar(c); } if (ferror(fp)) puts("I/O error when reading"); else if (feof(fp)) puts("End of file reached successfully"); fclose(fp); }
引用
- C17 标准(ISO/IEC 9899:2018):
- 7.21.7.1 The fgetc function (第 240-241 页)
 
- 7.21.7.5 The getc function (第 242 页)
 
- C11 标准(ISO/IEC 9899:2011):
- 7.21.7.1 The fgetc function (第 330 页)
 
- 7.21.7.5 The getc function (第 332 页)
 
- C99 标准(ISO/IEC 9899:1999):
- 7.19.7.1 The fgetc function (第 296 页)
 
- 7.19.7.5 The getc function (第 297-298 页)
 
- C89/C90 标准(ISO/IEC 9899:1990):
- 4.9.7.1 The fgetc function
 
- 4.9.7.5 The getc function
 
参阅
| 从 stdin 读取一个字符 (函数) | |
| (C11 中移除)(C11) | 从 stdin读取一个字符串(函数) | 
| 将一个字符写入文件流 (函数) | |
| 将一个字符送回文件流 (函数) |