C ++ //将getline输入与多个单词串进行比较?

时间:2016-10-19 04:35:39

标签: c++ string whitespace cin getline

你如何比较你从“getline(cin,fistName);”得到的东西;到一个字符串“John Doe”。

类似的东西:

#include <string>

main() {
int x;
cin >> x;

string fullName;
getline(cin, fullName);
if(fullName == "John Doe")
    // some code;
}

3 个答案:

答案 0 :(得分:1)

一旦有两个字符串,就可以使用它的比较功能。 你可以在这里阅读String Compare

答案 1 :(得分:0)

  • 改变&#34;得到&#34;到&#34; getline&#34;在您的代码中,更改代码后将正常工作。而不是使用&#34; ==&#34;你也可以使用fullName.compare(&#34; John Deo&#34;)。

答案 2 :(得分:0)

所以,我最初在上面的代码中分享的问题是我在getline上面使用了cin。正如我现在所理解的那样,cin&#39; grabs&#39;输入并离开/ n或&#39;输入&#39;在溪流中。因此,只有/ n寄存器和用户错过了输入其名称的机会,如上例所示。

我通过避免使用cin和使用getline解决了这个问题。另外,我使用cin.ignore()后使用cin,如果它后跟一个getline,我就解决了这个问题。

main(){

string x,y;
cin >> x;
cin.ignore();
getline(cin, y);
if (x == y) {
//some code
}


}

此外,您可以将getline值与equals运算符进行比较,如上面的代码所示。