【发布时间】:2021-06-24 02:27:11
【问题描述】:
我在里面做了一个程序,它使用一个scanf来接收值并将它们放入一个数组中。 问题: 如果我输入 double 而不是 int,程序将继续并将 double 转换为 int。 我想做这个 scanf 但如果我收到 1.2 例如我返回输入错误并返回 0;
if (!scanf("%d",&lst[i]) or (int)lst[i]==lst[i]){
printf("error of input");
return 0;}
不工作
【问题讨论】:
-
您应该将输入读取为字符串并对其进行解析。
-
由于
lst必须是int的数组,如果scanf()调用正确,则比较(lst[i] == lst[i]将始终为真。
标签: c input integer double scanf