gpt4 book ai didi

c - while 循环在使用 getchar() 和 putchar() 时打印同一语句两次

转载 作者:行者123 更新时间:2023-11-30 18:24:17 24 4
gpt4 key购买 nike

我正在编写一个简单的代码,它从用户处获取一个字符并打印它,如果该字符是 q,则循环中断。但我得到的输出打印了两次打印语句,第二次打印出任何内容,请查看图像。为什么打印两次?

#include<stdio.h>
void main()
{
char c;
printf("Enter a character: ");
c=getchar();
while(c!='q')
{
putchar(c);
printf("\nEnter a character: ");
c=getchar();
}
}

最佳答案

您正在按 Return/Enter 键作为输入的一部分。它保留在输入流中,并在下一次迭代中立即由 getchar 获取。

如果可以选择格式化输入,则可以使用 scanf 在等待字符输入时跳过空白字符:

scanf(" %c", &c); // Note the leading white-space, it's what does the skipping

如果您确实继续使用getchar,请注意它的返回类型,即int。当输入流耗尽时,它返回 EOF,并且该值不是有效字符,而是整数。

关于c - while 循环在使用 getchar() 和 putchar() 时打印同一语句两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42187699/

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