正确地将值输入到二维数组中
Inputting values into a 2D array- correctly?
#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;
}
代码读取假定为正方形的文本块,并将每个字符放入2d数组中。它编译和运行得很好,但是当我用最后2个for循环检查数组的值时,每行的最后一个值(即。迷宫[0][5],迷宫[1][5]…)都是错的。似乎他们已经流血到下一行的第一个字符,但我在代码中找不到任何会这样做的东西!而且,更奇怪的是,在
之前和之后紧接打印的值maze[i][l] = temp.at(l);
是正确的!
是什么改变了数组中的值?
你必须声明数组大小为dim而不是dim-1因为字符串从0到n-1有n个字符在n个位置有空字符string.length()返回n。
相关文章:
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 如何使用用户输入变量制作二维数组?
- 程序终止,状态为 -1073741510 在 for 循环的中间,将输入分配给二维数组
- C++使用二维数组的程序,该数组要求用户输入两次.它需要将这些输入显示为输出
- C++ ->尝试逐字阅读一行文本。如何使指针等效于用于存储输入的当前二维数组
- 从命令行输入分配二维数组
- C++基于用户输入字符串长度创建二维数组
- 根据用户输入对二维数组进行排序和打印
- 我无法让我的程序正确读取输入文件中的值(二维数组)
- 二维数组C++中的输入格式
- 使用输入值创建二维数组的大小
- 如何在C++中为矢量数据结构中的二维数组获取用户输入,而不使用行和列上的两个for循环
- 我如何设置一个5 X 5的二维数组,允许输入所有的数字
- 从用户输入填充二维数组
- 正确地将值输入到二维数组中
- 无法在C++中输入二维数组的值
- 用构造函数和用户输入创建一个二维数组
- 输入二维数组的大小
- 有没有一种方法可以从输入中找到二维数组的行和列