4

整数のリストがあり、1 行に 1 つの数値があり、これらの各数値を整数配列に格納して、後でプログラムで使用したいと考えています。

たとえば、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 に答える