在 C 中获取用户输入时跳过的代码行
Line of code skipped when getting user input in C
已经解决了,非常感谢
看这里:
由于字符数最少,已将答案复制到此处。
在这一行之后 scanf("%d",&e)
添加一个 getchar()
像这样:
scanf("%d",&e);
getchar();
当您按下 Enter 时,换行符保留在缓冲区中,因此当调用 fgets 时,换行符被传递给它,并且它的行为就像您按下 Enter
scanf()
完全按照您的要求读取,在缓冲区中该行的末尾留下以下 \n
,fgets()
将读取它。我建议也使用 fgets()
读取输入并使用 sscanf()
读取 choice
integer:
char input[10];
...
fgets(input, 10, stdin);
sscanf(input, "%d", &choice);
已经解决了,非常感谢
看这里:
由于字符数最少,已将答案复制到此处。
在这一行之后 scanf("%d",&e)
添加一个 getchar()
像这样:
scanf("%d",&e);
getchar();
当您按下 Enter 时,换行符保留在缓冲区中,因此当调用 fgets 时,换行符被传递给它,并且它的行为就像您按下 Enter
scanf()
完全按照您的要求读取,在缓冲区中该行的末尾留下以下 \n
,fgets()
将读取它。我建议也使用 fgets()
读取输入并使用 sscanf()
读取 choice
integer:
char input[10];
...
fgets(input, 10, stdin);
sscanf(input, "%d", &choice);