将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翻译。