C++ Primer 用Ctrl+Z退出 while (cin >> word) 的正确写法

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后仍需要按下回车键。

猜你喜欢

转载自blog.csdn.net/baiyu_king/article/details/81088604
今日推荐