将多个字符串读为一个字符串? C ++

时间:2014-10-29 05:01:14

标签: c++ cin getline

免责声明:我对C ++很陌生; Java是我的技能。

在我写的程序中,我需要比较两个字符串,如下所示:

#include<string>
#include<iostream>

using namespace std;

int main()
{
  string full_name = "John Doe";
  string find_name;

//User inputs "John Doe"

  cout << "Enter the name of the person to search for:" << endl;      
  **cin >> find_name;//THIS IS THE ISSUE I HAVE**

  if(find_name == full_name) //or some other compare function. NOT THE ISSUE.
      action_do_something;


return 0;
}

我知道缓冲区只需要&#34; John&#34;和&#34; Doe&#34;是第二个无关的命令。如何阻止缓冲区切断第二个名称? (有些名字长5个,有些只有1个)

我一直在玩弄getline(),但我想我并不完全理解它 - 它在提前耕作之前不会等待输入。

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用标准函数std::getline。例如

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