getline()函数

时间:2015-09-04 00:47:12

标签: getline

我使用getline(cin,varname)函数输入一个包含已实现空白的字符串,但是当我运行程序时,它不会从用户那里获取任何输入并转到下一行。

cout<<"Enter title : " ; getline(cin,title) ;

2 个答案:

答案 0 :(得分:0)

以下是std::getline

的使用方法
#include <iostream>
#include <string>

int main() {
  std::string title;
  std::cout << "Please enter title: " << std::cout;
  std::getline(std::cin, title);

  std::cout << "\n" << title << " is a good title!\n";

  return 0;

}

答案 1 :(得分:0)

问题在于,由于您没有endl,缓冲区尚未刷新,因此输入将成为您打印的输出。在endl

之后添加getline
#include <iostream>
#include <string>

int main() {
  std::string title;
  std::cout << "Please enter title: "<<std::endl;
  std::getline(std::cin, title);

  return 0;

}

如果您真的希望输入在提示旁边,并且您必须使用getline,请记住您也可能会收到“请输入标题”提示,然后您就可以这样:

#include <iostream>
#include <string>

int main() {
  std::string title;
  std::cout << "Please enter title: "<<std::flush;
  std::getline(std::cin, title);

  return 0;

}