我正在尝试实现一个简单的while循环让用户输入多个标记,而不必重新加载应用程序,由于某种原因,无论我似乎进入它总是循环.
我看起来使用调试器,它似乎不接受最后的scanf()询问是否重复自己.
int mark = 0;
char grade;
char choice = 'y';
while(choice == 'y')
{
//Request input
printf("enter a mark: ");
scanf("%d", &mark);
//Assess mark
grade = assess(mark);
//Output result
printf("That equals ");
printf("%c", grade);
printf(" when graded\n");
//Repeat?
printf("Again?...\n");
fflush(stdin);
scanf("&c", &choice);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试了一个do-while循环但仍然没有快乐,任何想法可能存在的问题?
小智 8
至少有两个问题:
fflush(stdin);
Run Code Online (Sandbox Code Playgroud)
未定义 - 您只能刷新输出流.和:
scanf("&c", &choice);
Run Code Online (Sandbox Code Playgroud)
应该:
scanf("%c", &choice);
Run Code Online (Sandbox Code Playgroud)