gpt4 book ai didi

c++ - 正确地将值输入二维数组?

转载 作者:行者123 更新时间:2023-11-28 06:50:14 26 4
gpt4 key购买 nike

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(){

string temp;
ifstream in("infile.txt");
getline(in, temp);
int dim = temp.length();



char maze [dim-1][dim-1];



int i = 0;
do{

for(int l = 0; l<dim; ++l){

cout<< temp.at(l);
maze[i][l] = temp.at(l);
cout << maze[i][l];
}
i++;
cout << endl;

}while(getline(in, temp));


for(int k=0; k<dim; k++){
for(int m=0; m<dim; m++){
cout << maze[k][m];
}
cout<< endl;
}



cout<< *maze;
}

代码读取假定为正方形的文本 block ,并将每个字符放入二维数组中。它编译并运行良好,但是当我用最后 2 个 for 循环检查数组的值时,每行的最后一个值(即 maze[0][5]、maze[1][5]...)都错了。看起来他们已经流血到下一行的第一个字符,但我在代码中找不到任何可以做到这一点的东西!此外,更奇怪的是,在

之前和之后立即打印的值
maze[i][l] = temp.at(l); 

是正确的!

什么改变了我数组中的值?

最佳答案

您必须声明大小为 dim 而不是 dim-1 的数组,因为字符串从 0 到 n-1 有 n 个字符,而 n 位置有空字符 string.length() 返回 n。

关于c++ - 正确地将值输入二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24089114/

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