このコードは、同じ文字列を2回入力すると、関数が停止する関数を実現するためのものです。
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 ++入門書》の1つの演習であり、解答集のコードも問題を解決しませんでした。