如何按回车键退出程序?

str*_*eek 1 c++

我正在用C++编写一个程序,它应该从用户那里获取一个输入字符串,打印它并要求用户再次键入另一个字符串并再次打印,直到用户按下返回键而不键入任何字符串.在这种情况下,程序应退出.

我想出了以下内容,但它没有按预期工作.有任何想法吗?

int main(){

    string surname;
    int c;
    while (true) {
        surname = "";
        cout << "Enter surname (RETURN to quit): ";
        c = cin.get();
        if (c == '\n') {
            break;
        }
        cin >> surname;
        cout << surname << endl;
    }
    return 0;   
}
Run Code Online (Sandbox Code Playgroud)

Lih*_*ihO 5

你不需要std::string像这样初始化:string surname; surname = "";没有必要.

您可以使用getline函数,然后检查此字符串是否empty如下所示:

string surname;
cout << "Enter surname (RETURN to quit): ";
while (getline(cin, surname))
{
    if (surname.empty())
        break;
    cout << surname << endl << "Enter surname (RETURN to quit): ";
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.