我使用getline(cin,varname)函数输入一个包含已实现空白的字符串,但是当我运行程序时,它不会从用户那里获取任何输入并转到下一行。
cout<<"Enter title : " ; getline(cin,title) ;
答案 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;
}