我想從一個文本文件看起來像這樣加載數據:將數據從逗號分隔的文本文件加載到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