我目前有問題,試圖使用結構從文本文件中提取數據,然後將其存儲到向量中。但無論一疊我,除非我改變浮子的價值觀,詮釋爲字符串,它總是給我的錯誤是這樣的:從文本文件中將數據拖入結構中
MissionPlan.cpp:190: error: invalid conversion from ‘void*’ to ‘char**’
MissionPlan.cpp:190: error: cannot convert ‘float’ to ‘size_t*’ for argument ‘2’ to ‘__ssize_t getline(char**, size_t*, FILE*)
這是我的結構:
struct CivIndexDB {
float civInd;
int x;
int y;
}
這是我的例如文本文件:
3.2341:2:3
1.5234:3:4
這是我用於提取從文本文件的數據,然後將其存儲到載體的代碼:
string line = "";
while (getline(civIndexFile,line)) {
stringstream linestream(line);
getline(linestream,civDb.civInd,':');
getline(linestream,civDb.x,':');
getline(linestream,civDb.y);
civIndexesList.push_back(civDb);
}
將結構中的變量類型更改爲字符串並不是我在應用程序中稍後需要的,我需要根據其浮點值對向量值進行排序。
我感謝任何幫助。謝謝!
爲什麼不使用二進制文件?我不記得如何編寫二進制文件,但我認爲在你的例子中它們更合適。 – MRB
您可以隨時讀取字符串,然後將字符串轉換爲您的結構中需要的數字。但我認爲P0W的答案是最簡單的。 – john
@john如果結構變量是字符串類型,那麼存儲在向量中的數據必須是字符串類型。即使我將字符串轉換爲我需要的類型,我仍然需要一個能夠存儲float,int,int(我認爲這是不可能的)的向量,並在稍後進行排序。 –