编程:设置输出路径 和 std::ifstream
1、“设置输出路径”按钮

2、特别注意:在使用下列范例代码之前,先将工具箱中的FolderBrowserDialog控件拖拽到软件界面中。

3、范例代码

1、用户在我的软件界面中选定路径,即便路径是包含中文的,存储路径的path的值也是正确(包含中文),但是一旦用std::fstream或std::ifstream打开这一路径下的文件,进行读写操作时,路径的中文就丢失了,文件打开失败。
2、经过网络检索,据说这个问题在VS2003、VC6.0以及之前版本是没有的,不幸的是VS2005以后的版本都有这个问题。
3、解决办法是,在使用path变量之前加上语句(1),在path变量使用完之后加上语句(1)。

4、如果难以确定path变量在什么时候开始使用,在什么时候停止使用,或者为了保险起见,最好的办法是在path变量出现的方法的最前端加上语句(1),在方法的最末端加上语句(2),如下图所示,这也是这次我采用的方法。

5、这样做之后,生成的X文件如图所示,在数字的千位和万位之间会出现逗号,这使得X文件不被D3D识别。

6、如果不解决这个问题也无妨,可以无视。
如果非得解决不可,可以采取这样的办法:对输出文件的文件指针进行设置,增加这样一行代码:f.imbue(std::locale("C"));

7、其实输出模式原本就是f.imbue(std::locale("C")),只是增加了上节中的语句(1)和语句(2)之后,改变了这个默认的输出模式。现在重新写上这行代码,就是为了让输出数据不受影响。
阅读量:144
阅读量:148
阅读量:138
阅读量:87
阅读量:138