C++ 输出返回的字符串数等于输入字符串';s字

C++ 输出返回的字符串数等于输入字符串';s字,c++,C++,我对此代码有问题: string answer; cin >> answer; while(answer != "S" && answer != "N" && answer != "s" && answer != "n") { cout << "\n[!] Phrase [!] \n" << endl; cin >> answer; } 字符串应答; cin>>答案; while(

我对此代码有问题:

string answer;
cin >> answer;

while(answer != "S" && answer != "N" && answer != "s" && answer != "n")
{
    cout << "\n[!] Phrase [!] \n" << endl;
    cin >> answer;
}
字符串应答;
cin>>答案;
while(answer!=“S”&&answer!=“N”&&answer!=“S”&&answer!=“N”)
{
答不上来;
}
基本上,只要我输入了不止一个单词,它就会输出不止一个字符串

比如,如果我输入“Hi”,它只输出一个“[!]短语[!]”字符串。 但如果我输入“Hi bye”之类的内容,它会打印出两个“[!]短语[!]”字符串

有办法吗


谢谢

当遇到空格时,
操作符停止,并将行的其余部分留给下一次读取。用于阅读整行内容:

std::getline(std::cin, answer);

我想某处可能有一个复制品。