std::fgetc, std::getc

< cpp‎ | io‎ | c
 
 
 
 
定义于头文件 <cstdio>
int fgetc( std::FILE* stream );
int getc( std::FILE* stream );

读取来自给定输入流的下个字符。

参数

stream - 读取字符的来源

返回值

成功时为获得的字符,失败时为 EOF

若文件尾条件导致失败,则另外设置 stream 上的文件尾指示器(见 std::feof() )。若某些其他错误导致失败,则设置 stream 上的错误指示器(见 std::ferror() )。

示例

#include <cstdio>
#include <cstdlib>
 
int main()
{
    FILE* fp = std::fopen("test.txt", "r");
    if(!fp) {
        std::perror("File opening failed");
        return EXIT_FAILURE;
    }
 
    int c; // 注意:是 int 而非 char ,要求处理 EOF
    while ((c = std::fgetc(fp)) != EOF) { // 标准 C I/O 文件读取循环
       std::putchar(c);
    }
 
    if (std::ferror(fp))
        std::puts("I/O error when reading");
    else if (std::feof(fp))
        std::puts("End of file reached successfully");
 
    std::fclose(fp);
}


参阅

(C++11 中弃用)(C++14 中移除)
stdin 读取字符串
(函数)
写字符到文件流
(函数)
把字符放回文件流
(函数)