尝试从文本文件构建一个 2d 数组,但 endl char 被放置在输入上方,它是否在我的 for 循环中的位置错误?

Trying to build a 2d array from a text file but the endl char is being placed above the input, is it in the wrong place in my for loop?

提问人:Nicholas 提问时间:4/7/2020 更新时间:4/7/2020 访问量:36

问:

我正在尝试使用标准输入(在命令行中)从文本文件中打印出 20/20 数组。当我运行我的代码时,它被打印在一行中,迷宫字符上方有 19 行新行,而新行应该在每列的末尾?我做错了什么/代码中是否有我没有看到的错误?(MAZE_DIM = 20)

for(int rows = 0; rows < MAZE_DIM; rows++)
{
    for(int columns = 0; columns < MAZE_DIM; columns++)
    {
        std::cin >> maze[rows][columns];     
    }
    std::cout << std::endl;
}

这是用于在另一个函数中打印输入的代码

std::cout << “在下面打印迷宫:” << std::endl;

if(std::cin.good()){
    std::cout << *maze << std::endl;}

这是输出,而每行的第 19 个字符之后应该有一行新行?

打印下面的迷宫: ====================S........===================.============......=.=============.=.=...============..=..=.=================.==.================....================.==.================.==.================.==.================.==.================.==.================.==.================.==.================.==.================.==.================.==.================.==.================E==============

C++ 多维数组 IOSTREAM Windows-subsystem-for-Linux

评论

0赞 user4581301 4/7/2020
我没有看到任何将换行符添加到 . 将换行符写入控制台,你神秘的 19 行,同时输入迷宫数据,但没有一个写入 .可能是你没有向我们展示的代码,但根据我们所看到的,答案很简单:你没有告诉计算机添加换行符,所以计算机没有添加换行符。mazestd::cout << std::endl;maze
0赞 Nicholas 4/7/2020
@user4581301 我对 c++ 非常陌生,很抱歉问一个愚蠢的问题,但我如何告诉计算机将新行添加到迷宫输入而不是控制台?
0赞 user4581301 4/7/2020
为每行多留一列。将 放入该额外列中。'\n'
0赞 user4581301 4/7/2020
请注意,看起来您正在快速而松散地使用 2D 数组,并同时被视为 1D 和 2D 数组。这通常有效,但 C++ 规则不能保证。

答: 暂无答案