我試圖在具有多個定界符從命令提示數據來讀取,例如:雷丁在格式化數據具有多個符C++
數據1,數據2,數據3。
我希望代碼能夠在第一個逗號之前的數據中讀取數據,之後的數據和第二個逗號之前的數據,以及最後的數據之後但在時間段之前。我一直在使用這個:
getline(cin, VAR, ',');
cin.get();
getline(cin, VAR2, ' ');
getline(cin, VAR3, ',');
cin.get();
getline(cin, VAR4, '.');
而且它做我想要的,只要信息輸入正確。但是,如何查看信息是否不正確?因爲如果用戶沒有輸入兩個逗號和一個句點,程序會卡住,因爲我認爲cin流在找不到getline()讀取中指定的分隔符後會中斷。我試過這個:
if (cin.fail()) {
cout << "failure" << endl;
}
在getline之後,但如果未輸入分隔符,它將永不運行。做到這一點的最佳方式是什麼,檢查錯誤並查看數據是否未以所需格式輸入?
這是一個很好的答案,謝謝。我以爲我可以從cin中讀取它,但這是一個更好的主意 – DudeDudeDude