1
我有一個要讀取的文本文件,但它沒有格式化(有意)。用C++中的多個分隔符讀取文件
我有對數據進行排序成一個結構,並且數據類型是不同的,所以第一我對它們進行排序到一個數組,所以我可以將它們分類到基於順序的結構體。 我做了一個代碼來獲取一行,然後測試它是否有空格,如果有空格,它使用''作爲分隔符再次掃描它。如果不是,它只是將字符串存儲到數組中。
下面是代碼:
int nextw(ifstream &file, string array[]){
string line;
string token;
stringstream iss;
size_t foundspace;
int i = 0;
while(getline(file, line)){
iss << line;
foundspace = line.find(" ");
if(foundspace != string::npos){
while(getline(iss, token, ' ')){
array[i++] = token;
}
}
else
array[i++] = line;
}
return i;
}
它返回該陣列的計數。
問題是它跳過了一行數據。 例如,我有:
data data data data data
data
data
data
data
data
skipped_data skipped_data
data
data
etc...
只有數據的2個字具有空間定界符單線被跳過。該行不被視爲該行是單個字符串,它根本就不在數組中。
編輯:添加更多的代碼
沒關係,我想通了。 – user1279914 2012-04-25 04:10:10
問題是? – 2012-04-25 04:15:26
嗯,我發現了>>做我正在尋找的東西,並且我用getline()使事情變得複雜2天。實際上我仍然不確定爲什麼我的代碼不起作用。我不能回答我自己的問題幾個小時,所以它仍然會顯示爲一段時間沒有答案。 – user1279914 2012-04-25 06:25:54