无法中断“while”循环-C
我试图实现一个简单的while循环,让用户输入多个标记,而不必重新加载应用程序,因为某种原因,无论我输入什么,它总是循环 我已经看过使用调试器的情况,但它似乎不接受最后的scanf询问是否重复它自己无法中断“while”循环-C,c,while-loop,C,While Loop,我试图实现一个简单的while循环,让用户输入多个标记,而不必重新加载应用程序,因为某种原因,无论我输入什么,它总是循环 我已经看过使用调试器的情况,但它似乎不接受最后的scanf询问是否重复它自己 int mark = 0; char grade; char choice = 'y'; while(choice == 'y') { //Request input printf("enter a mark: ");
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);
}
我还尝试了一个do-while循环,但仍然没有乐趣,你知道问题出在哪里吗?我认为最后一行应该是
scanf("%c", &choice);
而不是
scanf("&c", &choice);
我想最后一行应该是
scanf("%c", &choice);
而不是
scanf("&c", &choice);
至少有两个问题:
fflush(stdin);
未定义-只能刷新输出流。以及:
scanf("&c", &choice);
应该是:
scanf("%c", &choice);
至少有两个问题:
fflush(stdin);
未定义-只能刷新输出流。以及:
scanf("&c", &choice);
应该是:
scanf("%c", &choice);
fflush仅为输出流定义。不建议将其用于标准DIN
另外,正如其他人所指出的,使用scanf%c,&choice;阅读选项。fflush仅为输出流定义。不建议将其用于标准DIN
另外,正如其他人所指出的,使用scanf%c,&choice;阅读选项。请尝试扫描%c,&choice
请注意,scanf返回匹配的输入数,因此您应该真正检查返回值。如果由于som原因,输入未映射到字符,则变量可能会保持不变。在调用scanf之前,将choice设置为something!='y',因此只有在输入y时才能继续。请尝试扫描%c,&choice
请注意,scanf返回匹配的输入数,因此您应该真正检查返回值。如果由于som原因,输入未映射到字符,则变量可能会保持不变。在调用scanf之前,将choice设置为something!='y',因此只有在输入y时才继续。扫描函数没有执行您认为应该执行的操作。最后一个扫描函数应该是扫描函数%c,&choice?扫描函数没有执行您认为应该执行的操作。最后一个扫描函数应该是扫描函数%c,&choice?在定义操作的情况下,fflushstdin也不好,由于它将中断批处理,例如,grader