4

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

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

4

2 回答 2

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);
于 2013-02-10T21:04:08.983 回答
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;
}
于 2013-02-10T21:04:07.987 回答