c语言运行输出汉字,出现乱码,用的visual 6.0c++
发布网友
发布时间:2022-04-23 18:37
我来回答
共2个回答
热心网友
时间:2023-09-19 07:16
汉字都是用宽字符表示的,也就是2个char的大小
把宽字符分开读取的话,打印(putchar(ch);)的就是乱码
每次读取固定长度的字符串,然后以字符串的形式输出,就没有问题了,修改如下:
只需要对while循环进行下修改就好了
char data[100] = "";
while(!feof(fp))//判断是否到文件尾了
{
fflush(stdin);
//putchar(ch);
//ch=fgetc(fp);
fgets(data, 99, fp);//读取99个字符,最后一个字符用来放'\0'
printf("%s", data);//输出读取到的字符串
}
热心网友
时间:2023-09-19 07:17
while((ch=fgetc(fp))!=EOF)
{
fflush(stdin);
putchar(ch);
//ch=fgetc(fp); 多了一句fgetc(fp)去掉好了
}