我是 C++ 的新手,我认为我缺少一些概念,因为我想做的只是在二维数组中设置一个值,而且它搞砸了。它不是在我指定的位置设置一次,而是在多个位置设置它。该代码在其他语言中非常有意义,所以它一定是我不知道的 C++ 的一些怪癖?
#include <iostream>
#include <string>
int main()
{
const int width=26;
const int height=10;
char arr[width][height];
//fill with dots
std::string empty=".";
for (int i=0;i<height;i++)
{
for (int j=0;j<width;j++)
{
arr[i][j]=empty[0];
}
}
std::string msg="test";
//set location row=5, col=3 to "t"
arr[5][3]=msg[0];
//print the array
for (int i=0;i<height;i++)
{
for (int j=0;j<width;j++)
{
std::cout<<arr[i][j];
}
std::cout<<std::endl;
}
}
结果是:
..........................
..........................
..........................
.......................t..
............t.............
...t......................
..........................
..........................
..........................
..........................
中间应该只有 1 t。我不明白为什么要放其他 2 t。