#include <iostream>
#include <fstream>
using namespace std;
void main()
{
wifstream infile("测试.txt",ios::in);
wchar_t * p = new wchar_t[100];
wchar_t * q = new wchar_t[100];
q = L"我是一个学生";
if(!infile)
cerr << "open error!" << endl;
infile >> p;
setlocale ( LC_ALL, "" );
wcout << p[1] << endl;
setlocale ( LC_ALL, "" );
wcout << q[1] << endl;
// wprintf(p);
// wprintf(q);
}
那个"测试.txt"里面就一句话“我是一个学生”,可是为什么如果直接用L“我是一个学生”如q就可以正常输出,而从文件里面读出来的却不可以呢?还是一些符号的乱码。但是两个都可以用wprintf全部输出,但是我想要他们一个一个字符输出,q可以实现但p不行...
我搞不懂很久了...希望大家可以帮忙看看,深表感谢...
我用的是VC2010
发现把代码中的对应行改成这个样子就什么都输出不了,请问这是为什么??
setlocale ( LC_ALL, "" );
wcout << p << endl;
setlocale ( LC_ALL, "" );
wcout << q << endl;
但是如果变成
setlocale ( LC_ALL, "" );
//wcout << p << endl;
setlocale ( LC_ALL, "" );
wcout << q << endl;
这样的话q就又可以输出了,十分迷茫啊....
读取完成之后设置:infile.imbue(locale("chs"));
wifstream infile("测试.txt",ios::in);
infile.imbue(locale("chs"));
太厉害了,加上去之后就可以了...太感谢了...每次都是这样的,以为没问题了然后发现又一个问题出现之后不能解决...进度就被拖着了,再次表示感谢,谢谢指导了,我没有深入了解,但是却想用上,没人帮助确实不太行...呵呵...
没有返回值吧?