C++ 中ifstream对UNICODE编码的支持?

来源:百度知道 编辑:UC知道 时间:2024/06/21 01:38:47
C++ 中 我用ifstream来读取文件 程序中使用UNICODE编码,ifstream是否支持UNICODE编码,回出现怎样问题,怎样解决?
编译环境VC++6.0
请说的具体些,举个例子,谢谢!

ifstream不支持UNICODE编码,编译不通过。原因是:ifstream被定义为针对char类型字符流操作的。
如果需要读取包含UNICODE编码的文件,可以使用wifstream。

其实,wifstream与ifstream非常相似。只是前者读取的字符为wchar_t,而后者读取的字符为char。当然,二者在方法的使用上几乎一致。比如:
wifstream in("tmp.txt");
wchar_t wc;
if (in)
{
in.read(&wc, 1); // 此处读取的字符为宽字符,占用两个字节,而UNICODE编码正是使用宽字符来存储的
in.close();
}