假设我有一个带有数字的文件:1 2 3 4 5 6 7 8 9 10 -1
我想读取该文件并存储该文件的所有值,停在控制变量-1。
因此,如果我将该数组打印到另一个文件,它看起来像:1 2 3 4 5 6 7 8 9 10
这给了我所有的数字,但它包括-1。 怎么能掉掉-1?
int arr[100]; int n; while (scanf("%d",&arr[n]) > 0) n++;
您无法添加> 0
条件:这将为您提供未定义的行为。 为了忽略否定的,你可以在读取数字之后在循环内添加一个单独的检查,如下所示:
while (scanf("%d", &arr[n]) != EOF) { if (arr[n] > 0) { n++; } }
由于数组arr
具有固定大小,因此防止超支是一个好主意,如下所示:
while (n < 100 && scanf("%d", &arr[n]) != EOF) { if (arr[n] > 0) { n++; } }
如果在文件结束前达到100,则此循环将停止。 请注意,您还需要在循环之前将n
初始化为零,以避免未定义的行为。
这是一个关于ideone的演示 。
int arr[100]; int n; int temp; do { scanf("%d",&temp); if(temp != -1) { arr[n] = temp; } n++; }while(temp != -1 && n < 100);
以上就是c/c++开发分享如何从文件中将数字扫描到数组?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/523157.html