2

私は過去4時間ほどこれに取り組んできましたが、何をすべきかわかりません。Game of Life を C に移植していますが、FileIO が正しく動作しません。入力ファイルの形式は次のとおりです。

Game 1: Pattern Name
10 20
// Pattern here
Game 2: Pattern Name
15 25
// Pattern here

ファイルの最後まで続きます。10私がやりたいことは、ゲームを印刷し、サイズの多次元配列を作成し20、最初のゲームのために、この配列にパターンを保存することです。これが私がこれまでに持っているものです:

void fileIO() {
    FILE *file;
    char buffer[BUFFER_SIZE];
    int rows = 0, cols = 0;

    file = fopen("input.txt", "r");

    if(file == NULL) {
            printf("Error opening file.");
    } else {
            while(fgets(buffer, BUFFER_SIZE, file) != NULL) {
                    if(strstr(buffer, "Game") != NULL) {
                            printf("%s", buffer);
                    } else {
                            sscanf(buffer, "%d%d", &rows, &cols);
                    }
            }
            fclose(file);
    }
}

ここで私は壁にぶつかり、問題のリストに出くわしました。

Creating a dynamic global multi-dimensional array

Preventing the buffer from reading into the next game

これを行う最善の方法は、次のようにゲームごとに構造体配列を作成することだと考えました。

struct game {
    char board[][];
};

struct game games[];

ただし、それぞれの行と列の量のパラメーターを動的に設定する方法がわかりません。

4

1 に答える 1