在下面的代码中,while循环是做什么的(用"loop"标记)?: -
int main(void)
{
char code;
for (;;)
{
printf("Enter operation code: ");
scanf(" %c", &code);
while (getchar() != '\n') // loop
;
switch (code)
{
case 'i':
insert();
break;
case 's':
search();
break;
case 'u':
update();
break;
case 'p':
print();
break;
case 'q':
return 0;
default:
printf("Illegal code\n");
}
printf("\n");
}
}
Run Code Online (Sandbox Code Playgroud)
Diclaimer:代码不完整,它只是代码的一部分,因为它不能编译.
getchar()用于消耗用户输入的额外字符和换行符\n.
假设用户输入操作代码为
isupq\n // '\n' is for "Enter" button
Run Code Online (Sandbox Code Playgroud)
然后,scanf()将只读取字符i和五个字符的其余部分将被语句消耗
while (getchar() != '\n')
;
Run Code Online (Sandbox Code Playgroud)
因此,对于下一次迭代,scanf()将等待用户输入字符而不是从输入缓冲区中读取它.