c语言,用的visual 6.0 c++,中文乱码

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);

}

输入文件名前的提示字都正确显示,可是读取文件中的汉字都是乱码,求高手解决,谢谢了

第1个回答  2012-03-25
因为一个汉字是占2个字节的,所以你用一个char型去读取,输出肯定是乱码。
具体怎么用C实现我也不清楚
如果用C++,直接建一个char的数组,用cin往里面读,用cout输出就可以了
第2个回答  2012-03-25
while((ch=fgetc(fp))!=EOF)
{
fflush(stdin);
putchar(ch);
//ch=fgetc(fp); 这里多了一句fgetc,去掉就好了!!!
}本回答被提问者采纳
第3个回答  2012-03-25
把char改成int ?
在汉字两边加 /********** ***********/
第4个回答  2021-08-20
你把文件用GBK格式保存,应该是可以的
第5个回答  2012-03-25
一个汉字两个字节, putchar一次输出一个字节,怎么可以输出汉字呢

c语言运行输出汉字,出现乱码,用的visual 6.0c++
汉字都是用宽字符表示的,也就是2个char的大小 把宽字符分开读取的话,打印(putchar(ch);)的就是乱码 每次读取固定长度的字符串,然后以字符串的形式输出,就没有问题了,修改如下:只需要对while循环进行下修改就好了 char data[100] = "";while(!feof(fp))\/\/判断是否到文件尾了 { fflush(...

在Visual c++ 6.0里为C程序代码输入中注释为什么显示是乱码?
1.中文字符占两个字符,操作过程可能只删除了半个字符,导致了乱码;2.看看不是注释的地方有没有是中文字符的空格啥的;3.遇到这种情况,一般我是拷贝一下乱码行到记事本,然后把乱码行重新写下看看,反正倒腾下说不定就好了,有时是多加个空行,或删个空行啥的。

为什么visual c++6.0不能显示中文?
Visual C++6.0不能输入和显示汉字的解决步骤如下:1、首先打开VC6.0编程环境。2、然后选择菜单栏中的“工具”,然后选择里面的“选项”子菜单项,单击图中右上角显示的向右的箭头即可找到。3、在该选项卡中,选择“格式”选项。4、找到“类别”项中的“源窗口”,单击选中,然后再右边选择要设置的...

...Visual C++ 6.0里编的程序中,中文变成了乱码,怎么弄回来正常啊_百度...
当然啦,他默认的字符集是西方字符集,要unnicode才有中文

为什么Visual C++6.0不识别中文?急急急!
不识别中文?1、如果菜单是英文的,请重新下载中文版的 2、不论是英文版还是中文版,VC中汉字都不是合法的标识符(如变量名、常量名、函数名、数组名……)3、只能是在字符串中使用汉字。如:cout<<"你好";char mStr[1024]="面向对象",*p="程序设计";...

Visual C++6.0不能输入和显示汉字
1、第一步,打开VC6.0的编程环境,如下图所示,然后进入下一步。2、其次,完成上述步骤后,在菜单栏中选择“工具”选项,然后在其中选择“选项”子菜单项,单击下图中最右边箭头所指的图标,如下图所示,然后进入下一步。3、接着,完成上述步骤后,选择“格式”选项卡,如下图所示,然后进入下一步...

Visual C++ 6.0编程序中文变成乱码
"请输入宽:"改成 L"请输入宽:"L表示双字节文字编码

[100分]visual c++ 运行时中文乱码问题
那是因为你的控制台程序(就是那个黑色的运行窗口)没有设置,你在上面点击右键然后可以设置你需要的显示时的字体。这样就可以了。不会是乱码

Microsoft Visual C++ 6.0 编辑MFC程序,在运行后的文本框中出现乱码...
看一下你工程文件选择的字符集是Unicode还是multi-char,然后确认一下你的文本内容是不是和之相一致。还有确认你的操作系统是中文还是英文,如果是英文可能会出现这样的问题,需要确认相关语言支持是否安装。

利用visual c++6.0编写c语言时,不能输入汉字,怎么办?
如果是程序运行时在控制台里不能输入中文,那么如下设置:进入C:\\Windows\\system32找到cmd.exe,右键属性在“选项”选项卡中找到当前代码页,设定为“936 (ANSI\/OEM - 简体中文 GBK)”

相似回答