pav*_*che 5 c++ stringstream utf-8 ostringstream ofstream
我正在编写一个处理某些数据的程序,将其输出到.csv文件,然后编写GNUplot脚本,并调用GNUplot来执行脚本并创建一个具有相同名称的图像文件(只有不同的扩展名).文件名包含UTF字符(我相信是UTF-8?),例如°,φ和θ.当我使用g ++ 4.4.7在Linux中编译和执行它时,所有这一切都完美无缺.然后我改变了我的代码以在Microsoft Visual Studio 2008中编译,并且在运行程序时问题就开始了.
我使用以下两位代码
打开一个流来写入文件(GNUplot脚本和.csv文件之间的唯一区别是扩展名
// Generate a file name string
stringstream ss;
ss << type << " Graph #" << gID << " - " << title;
string fileName = ss.str();
// Open a stream for the output file
ostringstream outfile;
outfile << fileName << ".gplt" << ends;
ofstream ofs( outfile.str().c_str() );
Run Code Online (Sandbox Code Playgroud)写入包含正确UTF字符的ofstream文件的内容ofs,但是stringstream创建的字符串fileName和ostringstream创建的文件名(即使没有创建fileName,我测试它)显示字符不正确.
例:
应该是什么 - CDFvsRd图#32 - MWIR @ 300m,无太阳,30kts,θ=全°.csv
最终结果如何 - CDFvsRd图#32 - MWIR @ 300m,无太阳,30kts,Ï=全部的.csv
我可以用尽可能多的标准C++来解决这个问题吗?将我的fileName字符串转换为wstring帮助?
| 归档时间: |
|
| 查看次数: |
2076 次 |
| 最近记录: |