gpt4 book ai didi

c - 使用 while(getchar()! ='\n' ) 我清空标准输入,但我必须按下 Enter 键

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

我正在使用 while(getchar()!='\n') 来清空我的标准输入,但有时如果我想继续,我需要按下 Enter 键,这样计算才能继续...为什么?我将发布我的部分代码:

while(1){
if(fgets(buffer,MAX_DIMENSION,stdin)==NULL){ perror("Error"); exit(1);}
}else{
printf("Not correct term\n");
while(getchar()!='\n');
sleep(1);
}
}

谢谢!

@iharob 如果我设置 MAX_DIMENSION=1240 并作为输入发送:字符串 > 1024 它仍然保留在标准输入上,所以我必须使用 while(getchar()!='\n')

最佳答案

您已经使用fgets 获取字符串。该字符串以换行符终止。然后,您尝试使用 getchar清空 stdin 并将某些内容放入 getchar,您必须输入另一个换行符。如果这是您想要的,您可以简单地忽略 fgets 之后的缓冲区。无需使用 getchar 清空缓冲区。

关于c - 使用 while(getchar()! ='\n' ) 我清空标准输入,但我必须按下 Enter 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29805137/

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