我想从一个文本文件看起来像这样加载数据:将数据从逗号分隔的文本文件加载到2D数组?
161,77,88,255 0,44,33,11,111
等我具备的功能来操纵它,我保证该数组是正确的大小(可能仍然有所不同)。下面是我在尝试实现:
bool loadData(int **imgPix, string fileName) {
ifstream inputFile;
inputFile.open(fileName.c_str());
string tempLineRow; //The resulting line from the text file
string tempElementColumn; //The individual integer element
int numberOfCols = 0;
int numberOfRows = 0;
if (!inputFile.is_open()) {
return false;
}
imgPix = new int* [numberOfRows];
while (getline(inputFile, tempLineRow, '\n')) {
stringstream ss;
ss << tempLineRow; //Stringstream version of the line
while (getline(ss, tempElementColumn, ',')) {
stringstream ss2;
ss2 << tempElementColumn;
ss2 >> numberOfCols;
//Prob? (**imgPix) = *(*(imgPix + numberOfRows) + numberOfCols);
numberOfCols++;
}
numberOfRows++;
}
inputFile.close();
return true;
}
我已经标有带注释的双指针赋值行,因为我相信这是我的错误的根源,虽然有可能是别人。我不知道如何使用我实现的while循环结构来迭代更新2D数组。
任何人都可以提供任何帮助吗?将不胜感激!
100%正确,但关键点是“需要事先知道尺寸”,所以我想这种方法会导致死路一条。使用std :: vector会让事情变得更容易处理OP。 –
是的,使用'std :: vector'更简单,更优雅。好吧,'vector'' vector's对我来说是一个开销,但是这里的表现可能并不重要。无论如何,他需要事先知道阵列的至少一个(内部)维度。 – Inspired