读取txt文件中的数字列表并以C格式存储到数组中

时间:2013-02-10 20:54:16

标签: c arrays

我有一个整数列表,每行一个数字,并希望将这些数字存储在一个整数数组中,以便稍后在程序中使用。

例如在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中完成?

2 个答案:

答案 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;
}