我有一个整数列表,每行一个数字,并希望将这些数字存储在一个整数数组中,以便稍后在程序中使用。
例如在java中你会做这样的事情:
FileReader file = new FileReader("Integers.txt");
int[] integers = new int [100];
int i=0;
while(input.hasNext())
{
integers[i] = input.nextInt();
i++;
}
input.close();
如何在C中完成?
答案 0 :(得分:6)
放手一搏。如果你阅读每个函数的手册页(fopen(),scanf(),fclose())以及如何在C中分配数组,你会好得多。你还应该为此添加错误检查。例如,如果Integers.txt不存在或您没有从中读取的权限会发生什么?如果文本文件包含超过100个数字呢?
FILE *file = fopen("Integers.txt", "r");
int integers[100];
int i=0;
int num;
while(fscanf(file, "%d", &num) > 0) {
integers[i] = num;
i++;
}
fclose(file);
答案 1 :(得分:1)
#include <stdio.h>
int main (int argc, char *argv[]) {
FILE *fp;
int integers[100];
int value;
int i = -1; /* EDIT have i start at -1 :) */
if ((fp = fopen ("Integers.txt", "r")) == NULL)
return 1;
while (!feof (fp) && fscanf (fp, "%d", &value) && i++ < 100 )
integers[i] = value;
fclose (fp);
return 0;
}