我是使用逐字符去读文件的。代码如下:
ifstream ifs;
ifs.open(fileName, ios::in);
if (!ifs.is_open())
{
cout << "文件打开失败" << endl;
return false;
}
char c;
while ((c = ifs.get()) != EOF)
{
cout << c;
}
ifs.close();
但是,我发现一个问题:
如果txt文件里是中文,保持源代码不变,控制台是能正常输出文件的中文内容。
但是,将cout << c; 换成 cout << c << endl; 就会发现控制台不能输出中文了。
所以,读取中文文件时,c = ifs.get(),这里的c读到的到底是什么?
我又试了一个如下两个代码:
cout << '我'; //输出:52946
cout << "我"; //输出:我
从输出结果看,好像一个中文字不是一个字符