相关疑难解决方法(0)

使用非MSVC编译器在Windows下打开带有Unicode文件名的文件的fstream

当文件名是"Unicode"文件名时,我需要打开一个文件作为std :: fstream(或实际上任何其他std :: ostream).

在MSVC下我有非标准的扩展名std::fstream::open(wchar_t const *,...)?我可以用其他编译器做什么,比如GCC(最重要的)和Borland编译器.

我知道CRTL提供_wfopen但是它提供了C FILE *接口而不是io-stream,也许有一种非标准的方法来创建io-stream FILE *?有没有boost::ifstream像MSVC一样的Windows扩展?

c++ windows unicode gcc wide-api

10
推荐指数
2
解决办法
9345
查看次数

如何使用unicode filename c ++读取二进制文件?

在我正在研究的项目中,我处理了很多字符串操作; 从二进制文件中读取字符串及其编码(可以是单字节或双字节).本质上,我读取字符串值为vector<char>,读取编码,然后将所有字符串转换为wstring,以保持一致性.

这工作得相当好,但文件名本身可以是双字节字符.我完全不知道如何实际打开输入流.在CI中会使用_wfopen函数传递wchar_t* path,但wifstream似乎表现不同,因为它专门用于从文件中读取双字节字符,而不是从具有双字节文件名的文件中读取单个字节.

这个问题的解决方案是什么?

编辑:搜索网络,看起来在标准C++中根本不支持这一点(例如,请参阅此讨论).但是我想知道C++ 11是否真的在这方面添加了一些有用的东西.

c++ unicode ifstream c++11

10
推荐指数
1
解决办法
1537
查看次数

标签 统计

c++ ×2

unicode ×2

c++11 ×1

gcc ×1

ifstream ×1

wide-api ×1

windows ×1