我是C编程的新手,我在使用以下代码时遇到了问题。
#include <stdio.h>
int main(void)
{
int input_number;
int largest_number = 0;
char reply;
printf("Hello world\n");
printf("This is a simple program, that will output the largest number entered\n");
printf("Please enter a number");
while (reply != 'N')
{ // Start of WHILE loop
printf("Please enter a number");
scanf("%d",&input_number);
if (input_number > largest_number)
largest_number = input_number;
printf("\nDo you wish to enter another number? Y/N\n");
scanf("%c",&reply); // Problem with this line
} // End of WHILE loop
printf("%d",largest_number);
getch();
问题是这样的:当用户输入一个号码时,程序输出'你想输入另一个号码吗? Y / N”。该程序不会等待答案,并输出“请输入一个数字”。如果输入“N”而不是数字,循环将停止。
如果回复“你想输入另一个号码吗?”,如何在输出“请输入号码”之前让程序等待并退出循环是'N'?
答案 0 :(得分:3)
第一个\n
在缓冲区中留下的换行符scanf
由您的第二个scanf
读取。你需要消耗它。试试这个
scanf(" %c",&reply);
^ a space before %c can consume any number of white-spaces