C++中char表示中文的相关问题

在文件读取的过程中

char类型可以用于获取文件中逐个字符并且输出到屏幕上

例如:

while(!in.efo())

{

char temp=in.get();

cout<<temp;

}

该程序可以在VS中正确输出相关中文字符

但是如下程序将输出乱码

char temp='中';

cout<<temp;

这是为什么呢?

 

	char c[3] = "中";
	putchar(c[0]);
	putchar(c[1]);
	printf("\n%c", c[0]);
	printf("%c", c[1]);
	printf("\n");

比如以上代码,是能够输出显示两个”中“字的。你只写一个putchar(c[0]),当然不可能显示”中“字了。

满意请点击采纳支持

char temp='中';

你这么写本身就是错的,”中“字占用两个字节,你用一个char只能存储高字节,高字节都是大于0x80的,显示会乱码

中文你得用字符串

char temp[3] = "中";

cout<<temp;

中文占两个字节,一个字节肯定乱码啊。