C++为什么只有可以用CHAR

来源:百度知道 编辑:UC知道 时间:2024/05/31 14:19:29
#include<iostream>
#include<fstream>//头文件
#include<cstdlib>
#include<string>
#include<istream>
using namespace std;
void main()
{
char a ;//char 不是只可以读 字符吗? 但是在这个怎么可以读汉字(1个汉字也是字符串);知道的说话
ifstream ifs;
ifs.open("c:\\1.txt");

while(ifs.eof()==0)
{
ifs.get(a);
cout<<a;
}
}

是这样的,你也知道,两个字节一个汉字,输出的时候是一个字节一个字节输出的,但是显示在屏幕或是文件中就是两个显示在一起了,仅仅是显示的问题,汉字的ASC码每字节的第一个比特都是1,而那些占用一个字节的符号的首个比特都是0,这样输出设备见到一个首比特是1的字节,就把他和下一个字节一块显示,仅仅是显示而已。

下面把你的程序做个小修改,你看看结果:
#include<iostream>
#include<fstream>//头文件
#include<cstdlib>
#include<string>
#include<istream>
using namespace std;
void main()
{
char a ;//char 不是只可以读 字符吗? 但是在这个怎么可以读汉字(1个汉字也是字符串);知道的说话
ifstream ifs;
ifs.open("f:\\1.txt");
char temp = 0xf3;//这里多加了一个首比特是1的字节,看看结果,都错位了吧?
cout << temp;
while(ifs.eof()==0)
{
ifs.get(a);
cout<<a;
}
}