我正在用C++編寫一個小程序,並有一個輸入文件,需要逐行閱讀,文件中有2列,字符串名稱和整數。例如:閱讀來自txt文件的2列
abad 34
alex 44
chris 12
我寫這樣的代碼:
ifstream input("file.txt");
int num;
string str;
while(getline(input, line)){
istringstream sline(line);
if(!(sline>>str>>num)){
//throw error
}
...
}
我需要的情況下拋出錯誤:
如果沒有號碼 - 只有名字寫例如abad
(我的代碼實際上我收到提示),
,如果有一個名字,沒有號碼,如:abad 34a
(在34a
字母被忽略,並且轉移到恰好34在我的代碼,而錯誤應該被觸發)
或者如果超過2列eg abad 34 45
(第二個數字被忽略)。
如何正確讀取輸入數據(並且沒有迭代器)?
不幸的是這個解決方案沒有奏效,對於'阿巴德34a'我仍然沒有錯誤,並獲得數34 – NGix 2013-03-24 11:32:16
@ Ir0nm哎呀,我的邏輯很爛:)應該是'||'而不是'&&'。固定。 – jrok 2013-03-24 11:50:35
是的,你是對的)它現在的作品,並非常感謝優雅的解決方案 – NGix 2013-03-24 11:56:18