2009-10-18 68 views
16

我希望从cin中读取cin从当前位置直到换行符转换为字符串。要读取的字符可能包含空格。因为它停止在第一空间我的第一关失败:如何使用空格直到换行符来读取cin?

string result; 

cin >> result; 

如果CIN是给出:

(cd /my/dir; doSometing)\n 

变量结果只得到:

(cd 

我想我应该是能够使用流操纵器来完成这个任务,但是跳过并不完全正确,因为它会使用空格和制表符来回车,再加上它听起来像是为了跳过前导空白。

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

streambuf buf; 

cin >> buf; 

回答

21
std::string str; 
std::getline(std::cin, str); 
+3

注(因为我刚刚用这个烧了):没有出现与AIX 5.1的工作。我不得不使用stdio.h中定义的'fgets'。 – Pete 2010-09-28 22:38:57

相关问题