下面的代码给出了运行时错误,但我只是找不到代码中的错误,所以有人可以帮助吗?
#include<stdio.h>
int main() {
int a = 0;
while(1){
scanf("%d",&a);
if(a==42)
break;
printf("%d\n",a);
}
return 0;
}
最佳答案
如果要扫描用户输入直到按下有效输入,可以使用以下代码:
#include <stdio.h>
int main() {
char a = 0;
while(1){
scanf("%c",&a);
if(a==42)
break;
printf("%d\n",a);
}
return 0;
}
该代码不会挂在任何输入上,但会逐字符处理输入,因此您可能会因为输入而在控制台上看到类似
10
的内容。要结束该程序,如果我们有ascii编码,则有效的用户输入是*
。如您在
scanf
man page中看到的:成功后,这些函数将返回输入项的数量
成功匹配和分配;可以少于提供的数量
如果是早期匹配失败,则为零,甚至为零。
它将返回成功匹配的输入的数量,因此您可以检查该值以确保您的代码在输入缓冲区上有进展。
关于c - C程序中的运行时错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44487729/