Eri*_*ric 47 c++ parameters stl stringstream ofstream
我目前正在使用std::ofstream
如下:
std::ofstream outFile;
outFile.open(output_file);
Run Code Online (Sandbox Code Playgroud)
然后我尝试将std::stringstream
对象传递给outFile
如下:
GetHolesResults(..., std::ofstream &outFile){
float x = 1234;
std::stringstream ss;
ss << x << std::endl;
outFile << ss;
}
Run Code Online (Sandbox Code Playgroud)
现在我只outFile
包含垃圾:"0012E708"重复了一遍.
在GetHolesResults
我可以写
outFile << "Foo" << std:endl;
Run Code Online (Sandbox Code Playgroud)
并且它将正确输出outFile
.
关于我做错了什么的任何建议?
Joh*_*itb 81
您可以这样做,不需要创建字符串.它使输出流在右侧读出流的内容(可用于任何流).
outFile << ss.rdbuf();
Run Code Online (Sandbox Code Playgroud)
Dig*_*ity 15
如果你正在使用std::ostringstream
并想知道为什么没有写入ss.rdbuf()
然后使用.str()
函数.
outFile << oStream.str();
Run Code Online (Sandbox Code Playgroud)