4
1 3 0 2 4 
0 4 1 3 2 
3 1 4 2 0 
1 4 3 0 2 
3 0 2 4 1 
3 2 4 0 1 
0 2 4 1 3

.txt ファイルにこのようなマトリックスがあります。int**さて、このデータを 2D 配列のタイプに最適な方法で読み込むにはどうすればよいでしょうか? ウェブ全体を検索しましたが、満足のいく答えが見つかりませんでした。

array_2d = new int*[5];
        for(int i = 0; i < 5; i++)
            array_2d[i] = new int[7];

        ifstream file_h(FILE_NAME_H);

        //what do do here?

        file_h.close();
4

2 に答える 2

7

まずint*[]、ループ内で 5 の int 配列を初期化しながら、サイズ 7 の を作成し、1 から 7 までループする必要があると思います。

その場合、次のようにします。

array_2d = new int*[7];

ifstream file(FILE_NAME_H);

for (unsigned int i = 0; i < 7; i++) {
    array_2d[i] = new int[5];

    for (unsigned int j = 0; j < 5; j++) {
        file >> array_2d[i][j];
    }
}

EDIT(かなりの時間が経過した後):または、または
を使用することをお勧めします:vectorarray

std::array<std::array<int, 5>, 7> data;
std::ifstream file(FILE_NAME_H);

for (int i = 0; i < 7; ++i) {
    for (int j = 0; j < 5; ++j) {
        file >> data[i][j];
    }
}
于 2013-03-23T16:06:40.717 に答える
3
for (int i = 0; i < n; i++) {
 for (int j = 0; j < n; j++) {
    int n;
    fscanf(pFile, "%d", &n);
    printf("(%d,%d) = %d\n", i, j, n);
    array[i][j] = n;
}

お役に立てば幸いです。

于 2013-03-23T16:02:24.740 に答える