0

コード内から 2 つのファイルを開こうとしていますが、first.txt から 3 つの数字を取得しようとして問題が発生していますが、最初の 1 つしか表示されません。テキストファイルからすべての数値を出力するのに助けが必要なだけなので、プログラム全体を完了する必要はありませんが、アドバイスは大歓迎です:)!

    int main(int argc, char **argv)
    {
    int *number1Pointer = malloc(80 * sizeof(int));
    FILE *file1;
    //FILE *file2;
    file1 = fopen("first.txt", "r");
    //file2 = fopen("second.txt", "r");

    int read = fscanf(file1, "%d", number1Pointer);

    if(read != '\0')
    {
            printf("%d", &number1Pointer);
    }
    else
    {
            fclose(file1);

    }

    return 0;
    }
4

3 に答える 3

1

int read = fscanf(file1, "%d", number1Pointer);scanf("%d", &num)stdin からのように 1 つの "%d" を読み取るだけです。

while ループまたはfscanf(file1, "%d%d%d", ...).

于 2013-02-26T00:03:04.483 に答える
0

ファイルにスペースで区切られた 3 つの数値が含まれている場合、つまり21 32 32、その形式に一致する形式文字列が必要です。

fscanf(file1, "%d %d %d", &number1Pointer[0], &numberPointer[1], &numberPointer[2]);

free()使用した後は、割り当てられた変数を覚えておいてください。

于 2013-02-26T00:07:17.580 に答える
0

3 つの数字を読み取る必要がある場合は、このコードを試すことができます

int read = fscanf(file1, "%d %d %d", &number1Pointer[0], &number1Pointer[1], &number1Pointer[2]);

変数 read には、読み取られた要素の数または EOF が含まれます。したがって、チェックを適応させる必要があります。

于 2013-02-26T00:03:33.307 に答える