输出返回没有。字符串等于输入字符串的单词

问题描述 投票:1回答:1

我遇到这个代码的问题:

string answer;
cin >> answer;

while(answer != "S" && answer != "N" && answer != "s" && answer != "n")
{
    cout << "\n[!] Phrase [!] \n" << endl;
    cin >> answer;
}

基本上,每当我输入的不仅仅是一个单词时,它打印的不仅仅是一个字符串。

就像,如果我输入“Hi”,它只打印出一个“[!] Phrase [!]”字符串。但是如果我输入类似“Hi bye”的内容,它会输出两个“[!] Phrase [!]”字符串。

对此有任何修复?

谢谢

c++
1个回答
3
投票

>>运算符在遇到空格时停止,并在下一次读取时离开其余行。使用std::getline()阅读整行:

std::getline(std::cin, answer);
© www.soinside.com 2019 - 2024. All rights reserved.