gpt4 book ai didi

c - 在 while(getchar() != '\n' ) 中用 fgetc 或 getc 替换 getchar;

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:43 25 4
gpt4 key购买 nike

人们通常会提到

while( getchar() != '\n' )

当谈到清除输入缓冲区或溢出时。

fgetcgetc 也可以。例如:

while( fgetc(stdin) != '\n' )

while( getc(stdin) != '\n' )

人们总是使用 getchar 有什么特别的原因吗?

使用fgetcgetc 有什么缺点吗?

最佳答案

人们只在从标准输入读取的情况下更喜欢 getchar。当需要从文件中读取时,没有理由不将其替换为 getc/fgetc

话虽如此,该构造是危险的,因为在输入流中没有 '\n' 的情况下,它会导致无限循环。例如,如果最终用户使用 Ctrl+DCtrl+Z 关闭流,则程序像您这样的 while 循环将永远不会退出。您需要在忽略输入的循环中检查 EOF:

int ch;
while ((ch = getchar()) != '\n' && ch != EOF);

关于c - 在 while(getchar() != '\n' ) 中用 fgetc 或 getc 替换 getchar;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40191542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com