這段代碼只是實現一個函數,當你輸入兩次相同的字符串時,函數停止。std :: cin遇到EOF時的語法
string predata;
string c_data; //current data
cout << "please input string data" << endl;
//loop
while (cin >> c_data) {
if (c_data == predata) {
cout << "the " << c_data << " is the same one" << endl;
break;
}
else {
predata = c_data;
}
cout << "please input next word" << endl;
}
if (c_data != predata)
cout << "there's no repeated word" << endl;
問題:當我使用CTRL-d停止CIN,該C_DATA是改變不了的,它永遠不會輸出「有沒有重複的字」,所以我怎麼能決定的判斷?
PS:這是在「C++底漆」一個鍛鍊,並在答題簿的代碼沒有太多解決的問題。
看不到'if(std :: cin )'(除非你想報告一個錯誤,這隻會讓代碼更復雜)。 –
好點:任何在'previous'初始讀取失敗都會導致下面的'current'讀取失敗,並且由於'duplicateSeen'將保持爲false,所以'previous'永遠不會被訪問。刪除'if'將刪除一層嵌套。 –
此代碼不是本書中的代碼,它不是我的代碼的完整版本,我只是剪切了一些部分。 @JamesKanze – iverson