从文件中打印出二维数组

时间:2018-12-09 08:42:23

标签: c++

如何将此文本文件以2D数组的形式打印到控制台窗口。

maze

我写了这段代码,但似乎忽略了空格作为字符。

ifstream mazefile("maze.txt");

char maz[21][31] = {};

int i, j;

for (i = 0; i < 21; i++)
{
    for (j = 0; j < 31; j++)
    {
        mazefile >> maz[i][j];
        cout << maz[i][j];
    }
    cout << endl;
}

1 个答案:

答案 0 :(得分:2)

默认情况下,std::istream::operator<<()会跳过所有空格(空格,制表符,换行符)。由于需要空格,因此应考虑使用istream::get()istream::getline()

选择以下一项作为开始,请注意,您可能需要使用get手动处理换行符。

mazfile.get(maz[i][j]);
mazfile.get();  // Trailing newline

mazfile.get(maz[i], 30);
mazfile.get();  // Trailing newline

mazfile.get(maz[i], 30, '\n');  // With newline as delimiter
mazfile.get();  // Trailing newline

mazfile.getline(maz[i]);

或者,您可以强制跳过空格:

mazfile >> noskipws >> maz[i][j];