如何读取带有空格的cin直到换行符?

Wil*_*mKF 16 c++ string cin

我想从C++中读取当前位置的cin,直到将换行符转换为字符串.要读取的字符可以包括空格.我的第一次通过失败,因为它停在第一个空间:

string result;

cin >> result;
Run Code Online (Sandbox Code Playgroud)

如果给予cin:

(cd /my/dir; doSometing)\n
Run Code Online (Sandbox Code Playgroud)

变量结果只得到:

(cd
Run Code Online (Sandbox Code Playgroud)

我认为我应该能够使用流操纵器来实现这一点,但是skipws不是很正确,因为它会使用空格和制表符抛出回车符,而且听起来就像跳过前导空格一样.

也许我需要使用像这样的streambuf?

streambuf buf;

cin >> buf;
Run Code Online (Sandbox Code Playgroud)

Kea*_*eks 21

std::string str; 
std::getline( std::cin, str);
Run Code Online (Sandbox Code Playgroud)

  • 注意(因为我刚被这个烧毁):似乎不适用于AIX 5.1.我不得不使用stdio.h中定义的`fgets`. (3认同)