linux下C++ 标准输出重定向问题,能不能将标准输出重定向到我的C++代码中的字符串中
1个回答
展开全部
可以啊,建议使用stringstream 类。
stringstream ss;
cout.rdbuf(ss.rdbuf());
这样标准输出cout就重定向到了ss中,获取ss中的字符串可以用string s=ss.str();这样可以一次性全部取出字符串。
追问
error: aggregate ‘std::stringstream ss’ has incomplete type and cannot be defined|
需要什么头文件吗?
或者你能写一个完整的简单程序吗?谢谢了
追答
include <sstream>
include <iostream>
include <string>
using namespace std;
int main()
{
stringstream ss;
streambuf* buffer = cout.rdbuf(); //oldbuffer,STDOUT的缓冲区
cout.rdbuf(ss.rdbuf());
cout<<123<<456<<789;
string s(ss.str());
cout.rdbuf(buffer); //重新载入STDOUT的缓冲区
}
现在s中保存的就是123456789,cout重定向之后如果继续使用记得恢复到原来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询