2
FILE *fin = fopen("figura.in", "r");
if(fscanf(fin, "%d %d %d %d", &int[0], &int[1], &int[2], &int[3]) == 1)     {
        printf("%d\t%d\t%d\t%d\n", int[0], int[1], int[2], int[3]);
    } else {
        printf("failed to read integer.\n");
    }

整数の読み取りに失敗します。ファイルは大丈夫です、それは4つの整数で構成されています。なにが問題ですか?

4

1 に答える 1

5

fscanfフォーマット文字列の入力数である4が返されるかどうかを確認する必要があります。

if(fscanf(fin, "%d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3]) == 4) 

マニュアルページから:

正常に一致および割り当てられた入力アイテムの数を返します。これは、提供された数より少ない場合もあれば、早期の一致が失敗した場合はゼロになる場合もあります。

于 2012-10-27T12:04:12.937 に答える