将 cout 输出输出到 std::string
我有以下 cout
语句。我使用 char 数组,因为我必须传递给 vsnprintf
来转换变量参数列表并存储在 Msg
中。
有什么方法可以将 cout
输出到 C++ std::string
吗?
char Msg[100];
char appname1[100];
char appname2[100];
char appname3[100];
// I have some logic in function which some string is assigned to Msg.
std::cout << Msg << " "<< appname1 <<":"<< appname2 << ":" << appname3 << " " << "!" << getpid() <<" " << "~" << pthread_self() << endl;
I have the following cout
statement. I use char arrays because I have to pass to vsnprintf
to convert variable argument list and store in Msg
.
Is there any way we can get cout
output to C++ std::string
?
char Msg[100];
char appname1[100];
char appname2[100];
char appname3[100];
// I have some logic in function which some string is assigned to Msg.
std::cout << Msg << " "<< appname1 <<":"<< appname2 << ":" << appname3 << " " << "!" << getpid() <<" " << "~" << pthread_self() << endl;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以将
cout
替换为stringstream
。您可以使用 buffer.str() 访问该字符串。
要使用
stringstream
,您需要使用以下库:You can replace
cout
by astringstream
.You can access the string using
buffer.str()
.To use
stringstream
you need to use the following libraries:您可以使用 std::stringstream
http://www.cplusplus.com/reference/iostream/stringstream /
You can use std::stringstream
http://www.cplusplus.com/reference/iostream/stringstream/
如果您可以更改代码,请使用 ostringstream(或 stringstream)而不是 cout。
如果您无法更改代码并想要“捕获”正在输出的内容,您可以重定向输出或通过管道传输它。
然后,您的进程就可以读取文件或通过共享内存获取管道信息。
If you can change the code then use ostringstream (or stringstream) instead of cout.
If you cannot change the code and want to "capture" what is being output you can redirect your output or pipe it.
It may then be possible for your process to read the file or get the piped information through shared memory.
输出:
OUTPUT: