首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

漫谈windows上c++中文输入

2012-11-26 
漫谈windows下c++中文输入对于初学者来说,中文乱码一直是一个非常头痛的问题,很多人把大量的时间用于解决

漫谈windows下c++中文输入

对于初学者来说,中文乱码一直是一个非常头痛的问题,很多人把大量的时间用于解决乱码问题,究其原因就是还没意识到中文字符的不同编码方式。

最近做一个c++的实验,我发现从控制台输入中文,程序能够读取并正确显示该中文。然而在读取文件中的中文字时,控制台输出的却是乱码。

下面看一段代码

#include <iostream>#include <fstream>using namespace std;int main(){    ofstream out("d:\\test.txt");    char c[3];    c[0]=0xE5;    c[1]=0x95;    c[2]=0x8A;    out<<c[0]<<c[1]<<c[2]<<endl;    out.close();    return 0;}

打开test.txt,显示正常。此时大家应该明白,其实并不是你写的c++程序翻译中文字符,负责翻译的是输出的对象。比如你将字符串输出到windows的控制台,那么就由控制台负责翻译,而且控制台只能识别ANSI。现在回到我刚才提到的实验,从控制台输入到控制台输出底层用的都是ASNI码,所以输出没问题。但当由文件输入时,一定要保证文件的编码格式为ANSI,那么控制台才能正常输出。

看到这大家应该明白了,中文乱码一般都是由编码不一致的造成的。遇到相关问题时,要从底层编码的出发解决。


热点排行