我在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键,然后才会出现数字 .
这是它的样子截图 . 这里输入数字(并按回车)但没有任何反应:http://prntscr.com/deum9a
这就是我输入的东西之后的样子,并且所有数字都弹出:http://prntscr.com/deumyn
如果有人知道如何解决这个问题,请告诉我(:
1 回答
从
scanf()
删除\n
当格式字符串中有空格字符时,
scanf()
将忽略您输入的任意数量的空格,因此您执行的ENTER不会再次输入非空格字符以完成scanf()
调用 .通常,
scanf()
被认为对输入读数不利 . 因此,考虑使用fgets()
并使用sscanf()
解析输入 .见:Why does everyone say not to use scanf? What should I use instead?