c++ - getchar()有什么用?

标签 c++ c getchar

我们在哪里使用 getchar() 而不是 scanf()cin ? 另外,getchar() 的语法不应该是 char getchar() 而不是 int getchar() 吗?由于我们正在读取字符类型输入。

最佳答案

C 和 C++ 是不同的语言; getchar 存在于 C 中,而 cin(本质上依赖于类)则不存在。此外,与 getchar 相比,scanf 非常慢,因为 scanf 必须比 getchar 读取更多数据并进行更多处理 确实如此。

使用 getchar 的另一个原因是它用于像这样的 while 循环

int c;
while ((c = getchar()) != EOF) {
  /* do some stuff here */
}

这样您就可以继续读取字符,直到您明确到达EOF(或您选择的任何其他字符)。

顺便说一句,EOF是一个int(因为它不是可以读取的有效字符),这就是为什么getchar必须返回一个int

关于c++ - getchar()有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26075816/

相关文章:

c - C中的可选输入

C 程序计算卡在嵌套 while 循环中的文本中的 n 个字母单词的数量

c++ - 字符串结束字符是否损坏内存?缓冲区[大小] ='\0' ;

c++ - 为什么枚举值的 initializer_list 不被视为常量表达式?

c++ - 尝试创建 posix 线程并获得从 'void*' 到 'void* (__attribute__((__cdecl__)) *)(void*) 错误的无效转换

c++ - 从 char 数组中截断和删除字符 C++

c - 我可以在文件系统驱动程序中的 ZwCreateFile/InitializeObjectAttributes 中设置/检查用户定义的标志吗?

c - 如何在输入到文本文件的每个字符串之间添加空格

c - 我如何搜索 argv 是否以 char 结尾

c - 用于保存 getchar() 输入的变量的数据类型,作为 char 而不是 int