如何在C / C ++的循环中输入大量整数?

时间:2018-03-25 05:24:42

标签: c

我有这个片段:

printf("\nEnter number of elements: ", MAX);
scanf("%d", &num);
printf("\nEnter %d Elements : ", num);
for (i = 0; i < num; i++)
  scanf("%d", &arr[i]);

我想输入1000个整数到arr[i]但是如何在不手动输入1000个数字的情况下输入?我正在考虑使用外部文件存储数字,我只是在那里阅读,但我不知道如何...

1 个答案:

答案 0 :(得分:2)

有两种简单的方法: 首先,您可以使用数字文件:

printf("\nEnter number of elements: ", MAX);
scanf("%d", &num);

FILE *f = fopen("numbers.txt","r");
if (f == NULL){... handle error }
for (i = 0; i < num; i++)  
  fscanf(f,"%d", &arr[i]);
fclose(f);

这很好,但是你当然应该测试fscanf的错误(参见fscanf的文档),同时你可以用等待feof(f)信号文件结束来替换num。

但是,在大多数操作系统上,有一些shell管道实际上可以使文件成为程序的输入。对于您的代码段,您可以通过将数字的数量放在第一行,然后将第二轮scanfs的输入(例如,空格分隔的数字)放入第二行来格式化文件。

然后,在Linux上, cat filename.txt | yourprogram 就像你通过键盘输入文件内容一样。对于Windows,用类型替换cat(据我记得......)