函数
<cstdio>

getc

int getc ( FILE * stream );
从流中获取字符
返回指定 stream 的内部文件位置指示器当前指向的字符。然后,内部文件位置指示器会前进到下一个字符。

如果在调用时流位于文件末尾,函数将返回 EOF 并为该流设置文件结束指示符 (feof)。

如果发生读取错误,函数将返回 EOF 并为该流设置错误指示符 (ferror)。

getcfgetc 是等效的,除了getc在某些库中可能被实现为宏。有关直接从 stdin 读取的类似函数,请参阅 getchar

参数

stream
指向标识输入流的 FILE 对象的指针。
因为某些库可能将此函数实现为宏,并且这可能会多次评估 stream 表达式,所以这应该是一个没有副作用的表达式。

返回值

成功时,返回读取到的字符(提升为int值)。
返回类型是int以容纳特殊值 EOF,它表示失败
如果位置指示器位于文件末尾,函数返回 EOF 并设置 streameof 指示符 (feof)。
如果发生其他读取错误,函数也会返回 EOF,但会设置其错误指示符 (ferror)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* getc example: money counter */
#include <stdio.h>
int main ()
{
  FILE * pFile;
  int c;
  int n = 0;
  pFile=fopen ("myfile.txt","r");
  if (pFile==NULL) perror ("Error opening file");
  else
  {
    do {
      c = getc (pFile);
      if (c == '$') n++;
    } while (c != EOF);
    fclose (pFile);
    printf ("File contains %d$.\n",n);
  }
  return 0;
}

此程序读取一个名为myfile.txt的现有文件,逐个字符地读取,并使用n变量来计算文件中包含多少个美元符号 ($)。

另见