我有一些代码应该从输入中获取数字直到 EOF 并将它们放入数组中。
#include <stdio.h>
int main(){
int numbers[250000],i,m=0;
while(scanf("%d",&i)!=EOF){
numbers[m]=i;
m++;
}
}
我的问题是我需要检查输入是否有效(如果是数字)。如果它不是一个数字,我需要打印一条消息,上面写着“错误输入”并结束程序。
有人可以帮我吗?
<小时/> PS。我知道这个问题已经被问过好几次了,我已经用谷歌搜索过,但我无法从答案中找出如何使代码适应我的情况。所以,如果这个问题看起来多余,很抱歉。最佳答案
scanf 的返回值是一个整数,告诉您成功读取了多少项。如果成功读取单个整数,scanf 将返回 1。
#include <stdio.h>
int main(){
int numbers[250000],i,m=0;
int itemsRead = 0;
while(itemsRead = scanf("%d",&i) != EOF){
if (itemsRead != 1)
{
printf("Wrong input");
return 0;
}
numbers[m]=i;
m++;
}
}
关于检查输入是否为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528381/