c语言 - 为什么我的程序不等待另一个输入?



我写了一个小程序来练习使用getchar()获取用户输入,并使用c中的putchar()输出。

我想让我的程序做什么:我希望程序要求用户输入一个字符,将其存储在一个字符变量中,并将其打印出来。然后我想让它要求用户输入另一个字符,将它存储在另一个字符变量中,并打印出来。

下面是我的代码:

#include <stdio.h>
int main()
{
printf("Please enter a char: ");
char myChar = getchar();
printf("The char entered is: ");
putchar(myChar);
printf("n"); 
printf("Please enter another char: ");
char myChar2 = getchar();
printf("The char entered is: ");
putchar(myChar2);
printf("n");
return 0;
}

当我在我的终端中运行这个程序时,我看到的是以下内容,这不是我期望的行为。

cnewbie@cnewbies-MacBook-Pro c % ./a.out
Please enter a char: k
The char entered is: k
Please enter another char: The char entered is: 
cnewbie@cnewbies-MacBook-Pro c % 

当我运行程序时,它输出"Please enter a char: "然后等我输入一个字符。我输入k,然后回车。然后它不仅输出"进入的汽车是:"还有上面所示的其他行。

问题:为什么我的程序不等待我输入另一个字符?

我是C的初学者,我不知道为什么这是这样的行为。请帮助! !

getchar还读取空白字符,包括由于按Enter键而放置在输入缓冲区中的新行字符'n'

用以下方法调用scanf

char myChar;
scanf( " %c", &myChar );
^^^^

注意格式字符串中的前导空格。它允许跳过空白字符。

相关内容

  • 没有找到相关文章

最新更新