我有这个片段:
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个数字的情况下输入?我正在考虑使用外部文件存储数字,我只是在那里阅读,但我不知道如何...
答案 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(据我记得......)