将stringstream内容写入到stream中
我目前使用std::ofstream
如下:
std::ofstream outFile; outFile.open(output_file);
然后,我尝试将std::stringstream
对象传递给outFile
,如下所示:
GetHolesResults(..., std::ofstream &outFile){ float x = 1234; std::stringstream ss; ss << x << std::endl; outFile << ss; }
现在我的outFile
除了垃圾outFile
什么也没有包含:“0012E708”全部重复。
在GetHolesResults
我可以写
outFile << "Foo" << std:endl;
它会在outFile
正确输出。
任何build议我做错了什么?
你可以做到这一点,不需要创buildstring。 它使输出stream读出右侧stream(可用于任何stream)的内容。
outFile << ss.rdbuf();
如果你使用std::ostringstream
并想知道为什么没有用ss.rdbuf()
写入,那么使用.str()
函数。
outFile << oStream.str();
当将一个stringstream rdbuf传递给一个stream时,换行符不会被转换。 input的文本可以包含\n
所以findreplace将无法正常工作。 旧的代码写到一个fstream并将其切换到一个stringstream会丢失endl翻译。