C++ Primer 中按照书中教程,while (cin >> word)无论如何也不能正常退出。如下简单修改程序后,可用Ctrl+Z+回车键退出,且不影响写入word的内容。
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int main()
{
string word;
vector<string> text;
while (cin >> word)
{
text.push_back(word);
//以下两行为添加内容
if (word == "^Z")
break;
}
for (auto& str : text)
{
cout << str << ",";
}
system("pause");
return 0;
}
如果用 if (word == "XX")检测输入其他内容(XX)用于跳出while (cin >> word)的话,XX也会被写入word中,但用Ctrl+Z输入"^Z"的话,"^Z"并不会被写入到word中(具体原因未知,可能是因为EOF的特殊性)。注意输入Ctrl+Z后仍需要按下回车键。