在我的代码中(在c中)scanf()
取一个整数值,但是当我输入一个整数并按下回车键时,没有任何反应(执行不会按原样继续)。我需要按一个键,然后程序继续我先按下的号码。
例如: 代码:
int num=0;
printf("Enter a number and see if he belong to one of the groups:");
scanf("%d\n\n",&num);
输出:
Enter a number and see if he belong to one of the groups:5(enter)
f(enter)
然后代码才会继续......
答案 0 :(得分:1)
好吧,您似乎在告诉scanf
读取两个换行符,而不是一个:
scanf("%d\n\n", &num);
这应该给出正确的行为:
scanf("%d\n", &num);
答案 1 :(得分:1)
如果接受
的解决方案scanf("%d\n", &num);
与您发布的代码的工作方式不同,您有一个不兼容的编译器。 "%d"
之后的空格,"\n"
,"\t"
," "
或其他内容以及它们的数量应该没有区别。它们在空格之后消耗0或更多。在输入非空格(或EOF)之前,scanf("%d\n", &num)
不会返回。
正如@pepo建议的那样,使用
scanf("%d", &num);
或者更好,使用fgets()/sscanf()
。