C++ 中的getc() 函数从给定的输入流中读取下一个字符。它可以实现为宏。
getc()原型
int getc(FILE* stream);
getc()
函数将文件流作为其参数,并将给定流中的下一个字符作为整数类型返回。
getc() 和 fgetc() 之间的区别
C++ 中的getc()
和fgetc()
函数几乎相似。但是,它们之间存在一些差异。
getc()
函数可以作为宏实现,而fgetc()
函数不能作为宏使用。
此外 getc()
函数经过高度优化,因此对 fgetc()
的调用可能比对 getc()
的调用花费更长的时间。因此,在大多数情况下,getc()
是首选。
它在<cstdio> 头文件中定义。
参数:
stream
:读取字符的文件流。
返回:
- 成功时,getc() 函数返回读取的字符。
- 失败时返回 EOF。
- 如果失败是由于文件结束引起的,则设置 eof 指示符。
- 如果失败是由其他错误引起的,则设置错误指示器。
示例:getc() 函数的工作原理
#include <cstdio>
int main()
{
int c;
FILE *fp;
fp = fopen("file.txt","r");
if (fp)
{
while(feof(fp) == 0)
{
c = getc(fp);
putchar(c);
}
}
else
perror("File opening failed");
fclose(fp);
return 0;
}
运行程序时,可能的输出将是:
Hello World!
相关用法
- C++ getchar()用法及代码示例
- C++ getline(string)用法及代码示例
- C++ getwchar()用法及代码示例
- C++ get_allocator()用法及代码示例
- C++ getenv()用法及代码示例
- C++ getwc()用法及代码示例
- C++ gets()用法及代码示例
- C++ gmtime()用法及代码示例
- C++ unordered_map cbegin用法及代码示例
- C++ map lower_bound()用法及代码示例
- C++ Unordered_multimap reserve()用法及代码示例
- C++ list assign()用法及代码示例
- C++ std::max()用法及代码示例
- C++ std::string::push_back()用法及代码示例
- C++ Array swap()用法及代码示例
- C++ valarray cos用法及代码示例
- C++ multimap key_comp()用法及代码示例
- C++ Deque erase()用法及代码示例
- C++ List cend()用法及代码示例
- C++ std::less_equal用法及代码示例
注:本文由纯净天空筛选整理自 C++ getc()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。