c语言,用的visual 6.0 c++,中文乱码
c语言课程上完了,自己编了一个小程序,打开一个文本文件,并读取里面的内容;#include<stdio.h>#include<stdlib.h>#include<coni...
c语言课程上完了,自己编了一个小程序,打开一个文本文件,并读取里面的内容;
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main()
{FILE *fp;
char f[10],ch;
printf("*****读书程序******\n\n");
printf("*****此程序仅供txt格式文本使用******\n\n");
printf("输入文件名(格式:文件名.后缀):");
scanf("%s",f);
if((fp=fopen(f,"r"))==NULL)
{printf("此文件不存在!!\n"); getch();exit(0);}
while((ch=fgetc(fp))!=EOF)
{fflush(stdin);
putchar(ch);
ch=fgetc(fp);
}
getch();
fclose(fp);
}
输入文件名前的提示字都正确显示,可是读取文件中的汉字都是乱码,求高手解决,谢谢了 展开
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main()
{FILE *fp;
char f[10],ch;
printf("*****读书程序******\n\n");
printf("*****此程序仅供txt格式文本使用******\n\n");
printf("输入文件名(格式:文件名.后缀):");
scanf("%s",f);
if((fp=fopen(f,"r"))==NULL)
{printf("此文件不存在!!\n"); getch();exit(0);}
while((ch=fgetc(fp))!=EOF)
{fflush(stdin);
putchar(ch);
ch=fgetc(fp);
}
getch();
fclose(fp);
}
输入文件名前的提示字都正确显示,可是读取文件中的汉字都是乱码,求高手解决,谢谢了 展开
5个回答
展开全部
因为一个汉字是占2个字节的,所以你用一个char型去读取,输出肯定是乱码。
具体怎么用C实现我也不清楚
如果用C++,直接建一个char的数组,用cin往里面读,用cout输出就可以了
具体怎么用C实现我也不清楚
如果用C++,直接建一个char的数组,用cin往里面读,用cout输出就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while((ch=fgetc(fp))!=EOF)
{
fflush(stdin);
putchar(ch);
//ch=fgetc(fp); 这里多了一句fgetc,去掉就好了!!!
}
{
fflush(stdin);
putchar(ch);
//ch=fgetc(fp); 这里多了一句fgetc,去掉就好了!!!
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把char改成int ?
在汉字两边加 /********** ***********/
在汉字两边加 /********** ***********/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把文件用GBK格式保存,应该是可以的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个汉字两个字节, putchar一次输出一个字节,怎么可以输出汉字呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询