我们在哪里使用getchar()
代替scanf()
或cin
?
另外,getchar()
的语法不应该是char getchar()
而不是int getchar()
吗?因为我们正在阅读字符类型输入。
答案 0 :(得分:2)
C和C ++是不同的语言; getchar
存在于C中,而cin
(本质上依赖于类)则不存在。与scanf
相比,getchar
也非常慢,因为scanf
必须读取更多数据并执行比getchar
更多的处理。
拥有getchar
的另一个原因是它在像这样的while循环中使用
int c;
while ((c = getchar()) != EOF) {
/* do some stuff here */
}
这样您就可以继续阅读字符,直到您明确到达EOF
(或您选择的任何其他字符)。
顺便说一下,EOF
是int
(因为它不是可以阅读的有效字符),这就是getchar
必须返回int
的原因}。