我正在用 C 语言编程,当我在 cmd 终端中运行程序时遇到问题。这是我使用的代码:
#include <stdio.h>
int main() {
int num;
printf("enter a number: ");
scanf("%i\n", &num);
for(int n = 1; n < num + 1; n++){
printf("%i\n", n);
}
return 0;
}
一般来说,除了一件事之外,一切都按其应有的方式进行。 当我输入数字时,什么也没有发生。没有输出,直到我写下任何内容并按 Enter 键,然后才会出现数字。
这是它的屏幕截图。 这里输入数字(然后按 Enter 键)但没有任何反应:http://prntscr.com/deum9a
这就是我随机输入一些内容并弹出所有数字后的样子:http://prntscr.com/deumyn
如果有人知道如何解决这个问题,请告诉我(:
最佳答案
从 scanf()
中删除 \n
scanf("%i", &num);
当格式字符串中有空格字符时,scanf()
将忽略您输入的任意数量的空格,因此您执行的 ENTER 操作不会终止输入读取。基本上,您将被迫再次输入非空白字符才能完成scanf()
调用。
通常,scanf()
被认为不利于输入读取。因此,考虑使用 fgets()
并使用 sscanf()
解析输入。
参见:Why does everyone say not to use scanf? What should I use instead?
关于c - 使用 scanf 进行输入读取挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53287381/