gpt4 book ai didi

c++ - 显示二维动态数组

转载 作者:行者123 更新时间:2023-11-28 00:53:08 25 4
gpt4 key购买 nike

抱歉,如果这是一个有点愚蠢的问题。

这是我的代码:

#include<iostream>
using namespace std;

int main()
{
int columns, rows;
char **map;

cin>>columns;
cin>>rows;

/*creats array of pointers rows tall*/
map = new char*[rows];

/*creats array of chars columns tall*/
for(int i=0; i<rows; i++)
map[i] = new char[columns];

//populate map with input
map[0][0] = cin.get();
for(int j=0; j<rows; j++)
for(int i=0; i<columns; i++)
{
if (cin.peek() == '\n')
cin.ignore(256, '\n');
else
map[j][i] = cin.get();
}


//DISPLAY
cout<<endl;
for(int j=0; j<rows; j++)
{
for(int i=0; i<columns; i++)
{
cout<<map[j][i];
}
}
return 0;
}

用户将输入如下内容:

7 4
#######
#S# #
# #E#
#######

我想输出它。然而我的结果是这样的:

#######
#S#
## #
E#####

有什么想法吗?

最佳答案

首先for循环:

  //populate map with input

for(int j=0; j<rows; j++)
{
cin.get();
for(int i=0; i<columns; i++)
{
if (cin.peek() == '\n')
cin.ignore(256, '\n');
else
map[j][i] = cin.get();
}
}

并将新行添加到输出:

  //DISPLAY
cout<<endl;
for(int j=0; j<rows; j++)
{
for(int i=0; i<columns; i++)
{
cout<<map[j][i];
}
cout << endl;
}

在再次读取之前,始终确保从输入流中取出尾随输入。

关于c++ - 显示二维动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com