c语言-C编程输出中文为什么显示乱码

问题描述

C编程输出中文为什么显示乱码

从词典文件中读取数据,输出的时候为什么显示乱码?
代码如下:
#include
2 #include
3
4 int main()
5 {
6 FILE *fp = fopen("text.txt","r");
7 char english[32],chinese[64],attribute[8];
8 int i=0,j=0,k=0;
9 int flag_null = 0, flag_p = 0;
10 while(!feof(fp))
11 {
12 char ch = fgetc(fp);
13 if(ch == ' ')
14 {
15 flag_null = 1;
16 }
17
18 if(ch == '.')
19 {
20 flag_p = 1;
21 }

22 if(flag_null!=1)
23 {
24 english[i] = ch;
25 i++;
26 }

27 else if(isalpha(ch)||ch=='.')

                               {

29 attribute[k] = ch;
30 k++;
31 }
32 else if(ch < 0)
33 {
34 chinese[j] = ch;
35 j++;
36 }
37
38 if(ch == 'n')
39 {
40 printf("%s %s %sn",english,chinese,attribute);
41 }
42
43 }
44
45 fclose(fp);
46 }

text.txt文件内容
across   prep.横越 adv.横穿

输出:
across .??越横穿? prep.adv.??越横穿?

解决方案

你看看你软件设置的编码是gbk还是utf-8之类的,复制字典的内容编码可能跟软件不匹配,试一下先复制到doc或者txt文件为纯文本试试再复制到编程软件中,或者检查编码是否匹配

解决方案二:

汉字编码格式跟英文字符编码格式是不一样的。标准C语言库函数不能直接处理汉字。
%c,%s只能处理ASCII在[32,127]区间的字符输出。汉字编码超过这个范围了

时间: 2024-11-03 10:48:23

c语言-C编程输出中文为什么显示乱码的相关文章

cmd 命令行模式下输出中文时显示乱码的解决方案

cmd 命令行模式下输出中文时显示乱码的解决方案 因为发现默认值->属性窗口中已是936了,只好通过注册表直接改动:HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe下的项CodePage项值改为十进制"936"值或 十六进制"000003a8"值.说明一下: 十六进制"000003a8"或十进制"936",表示"936 (ANSI/OEM - 简体中

Source Insight中文注释显示乱码。怎么办?

问题描述 Source Insight中文注释显示乱码.怎么办? 我使用的是最新的source insight,中文显示乱码,网上看是因为编码的问题,但是我的源码文件多不能一个一个转换,想问一下可以彻底解决这个问题吗? 解决方案 http://blog.csdn.net/ccf19881030/article/details/8987759http://wenku.baidu.com/view/c4b9e9a808a1284ac85043d8.htmlhttp://blog.163.com/su

Wifi列表中文wifi显示乱码什么原因,如何处理?

这并非是系统出问题导致的,是由于系统编码和猎豹WIFI中文名编码不同造成的,但并不影响手机的正常使用:如果手机搜索到的依然是乱码,同样也是手机上面跟猎豹WIFI中文名编码不同造成的,同理也是不影响手机的正常使用! 操作步骤: 1.首先进入www.hao123.com:(类似可以在主页上添加编辑自己经常访问的网站均可,以hao123.com为例,可以使用编码转换工具.)   列表中文wifi显示乱码什么原因,如何处理?-wifi列表中文乱码">   然后任意选个网站名编辑:     2.鼠标

url带中文参数显示乱码的问题

最近要上个项目,其实很简单的东西,就是拼接一个url,不过url中的参数需要UrlEncode编码的,其实对我来说,这个问题很好解决,C#用HttpUtility.UrlEncode来进行编码,asp用Server.UrlEncode来进行编码. 问题解决了吗?问题刚刚开始 因为这个公用转向文件,是针对所有分站的,分站代码有.net和asp两种,文件编码格式也不一样. 头大的事情开始了.asp站的文件编码是gb2312,虽然.net的文件格式也是gb2312,但因为webconfig里设置的re

中文字符串显示乱码-java前端jquery接接收中文字符串乱码问题

问题描述 java前端jquery接接收中文字符串乱码问题 服务端:@RequestMapping(value="/detail/modSelect", method = {RequestMethod.POST}) public @ResponseBody String mod(@RequestBody String reqParam){ //修改请求处理 System.out.println("修改请求发送到此"); System.out.println(reqP

PHP MySQL中文内容显示乱码

MySQL版本:mysql-4.1.21-win32.exe     Apache版本:apache_1.3.37-win32-x86-no_src.msi     操作系统:WinXP   +   SP2     PHP版本:php-4.4.3-Win32.zip         我的网站目前要支持中.英文,以后还需支持其它语言.         所以我在创建数据库时都用了utf8     我使用了PEAR   +   Smarty     PHP代码如下:     $user   =   D

解决Ubuntu网上邻居中文目录显示乱码

确认你的local,如果为:zh_CN.UTF-8 则:&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;在 /etc/samba/smb.conf 中的 [global] 段加上: display charset = UTF-8unix charset = UTF-8dos charset = cp936 确认你的local,如果为:zh_CN.GB2312 zh_CN.GBK 则: 在 /etc/samba/sm

php-向mysql写入中文数据时不显示或显示乱码

问题描述 向mysql写入中文数据时不显示或显示乱码 今天写php,向mysql插入数据时,无法显示中文或显示乱码,怎么解决?已经设定了字符集:mysql_query('SET NAMES utf8');sql语句:mysql_query(""INSERT INTO user (username) VALUES ('庞统')""); 数据库表结构:username varchar(20) utf8_general_ci 而且mysql的配置文件my.ini里我也改了

JSP页面显示乱码问题的解决方案

js|解决|问题|显示|页面 一.JSP页面显示乱码 二.表单提交中文时出现乱码 三.数据库连接时出现乱码 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考. 一.JSP页面显示乱码 下面的显示页面(display.jsp)就出现乱码: <html> <head> <title>JSP的中文处理</title> <meta http-equiv="Con