【发布时间】:2012-01-01 23:31:28
【问题描述】:
基本上我有一个线程使用
从 c++ std::istream 读取istream& getline ( istream& is, string& str );
当我将 istream 与 cin 绑定时,当我从标准命令行键入输入作为输入时它工作正常。
但我想知道有没有一种方法可以让读取线程 getline 获取字符串而无需 使用实际的命令行?
基本上我想实现这个:
只需调用带有参数str(而不是在命令行中键入str)的函数WriteToIStream,读取线程getilne()就可以得到str。
void WriteToIStream(string& str)
{
//...
}
非常感谢
【问题讨论】:
-
为什么要使用全局
cin——你可以创建一个只用于与线程通信的新流。 -
"在不使用实际命令行的情况下获取字符串"那你想从哪里获取字符串呢?
-
@KerrekSB:你能给我一个简单的例子吗,因为我还没有真正写过一个新的流,只使用了那些 c++ iostream fstream 等。在这种情况下也可以 boost::iostream 帮助?
-
std::stringstream应该可以完成这项工作。 -
@KerrekSB:所以我没有使用 cin,而是使用了共享的 std::stringstream?