getc
函数 <cstdio>
int getc ( FILE * stream );
从流中获取字符
返回指定流的内部位置指示器当前指向的字符。然后将位置指示器移动到下一个字符。
如果调用时流位于文件结束位置,则该函数返回
EOF,
并设置流的文件结束指示符(
feof)。
如果发生读错误,该函数将返回
EOF
并设置流的错误指示符(
ferror)。
fgetc和getc是等价的,只是在某些库中,getc可以作为宏实现。
有关直接从
stdin读取的类似函数,请参阅
getchar。
☲ 参数
stream
指向标识输入流的
FILE对象的指针。
因为一些库可能会将这个函数实现为宏,而这可能会对流表达式求值多次,所以这应该是一个没有副作用的表达式。
☉ 返回值
如果成功,则返回读的字符(转换为int值)。
返回类型为int,以适应特殊值EOF,该值表示失败:
-如果位置指示符位于文件结束位置,则函数返回
EOF
并设置流的EOF指示符(
feof)。
-如果发生其他读取错误,该函数也返回
EOF
并设置错误指示符(
ferror)。
☣ 示例
/* 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变量计算该文件包含多少美元字符($)。
🍄 另请参阅