当前位置:首页 » 编程软件 » 编译结果打乱码

编译结果打乱码

发布时间: 2022-04-14 22:34:27

c语言问题,输出结果是乱码

你在定义x结构体的同时,已经定义了一个x型的全局变量student1并赋了初值,然而,你的main函数里又定义了同名的局部变量student1并没有赋初值。main函数执行时,这里的student1是未赋初值的,所以student1.name的值并不是"星哥",你以%s输出它,自然会显示为“乱码”。

改正方法是,既然你已经定义了全局变量,main函数里就不要再定义了。

#include<stdio.h>
#include<string.h>

structx{
charname[10];
intage;
charaddress[10];
charsex[10];
}student1={"星哥",20,"天水","女"};

intmain(){
/*structxstudent1;注释掉这一句就会是正常的*/
printf("%s ",student1.name);

return0;
}

运行结果

㈡ c++中编译时出现乱码的原因可能有哪些

这是因为编译器不支持。以下为几种常用的编译器

c++编译器是一个与标准化C++高度兼容的编译环境。这点对于编译可移植的代码十分重要。编译器对不同的CPU会进行不同的优化。
常见的C++编译器有如下几种:
GNU C++
g++是一个开源的C++编译器,GCC3.3对标准化C++的支持达96.15%。
值得一提的是,gcc是gnu c的编译器, g++是gnu c++的编译器, 而egcs(Enhanced GNU Compiler Suite)可以认为是gcc的改进版。目前gcc已经改名,从原来代表GNU C Compiler改变为代表GNU Compiler Collection。而MinGW或Cgywin,是在windows平台上的gnu c/c++编译器,以及库文件,运行环境的集合。
Borland C++
该编译以速度快、空间效率高而着称。它的5.5版本对标准化C++的支持达92.73%,而官方称100%符合ANSI/ISO的C++标准和C99标准。
它是Borland公司开发的,是Borland C++ Builder和Borland C++ Builder X这两种IDE的后台编译器。
Visual C++
VC++6.0对标准化C++的兼容仅达83.43%。
它是Visual Studio、Visual Studio.net 2002、Visual Studio.net 2003、Visual Studio.net 2005的后台C++编译器。随着Stanley Lippman等编译器设计大师的加盟,它变得非常成熟可靠了。Visual C++

㈢ 为什么编译结果出现乱七八糟的东西

这不是“编译结果”出了错,编译已经通过,表示都是合法的C语言语句,可以执行。但是程序中没有对局部变量c数组赋值(所以导致了其中的数据是一堆“乱码”)。你要想输出c数组中的什么内容?这需要先对c数组进行初始化赋值,或是进行输入才可以的。

㈣ 如何解决VC++编译后出现数字乱码

情况1:可能是因为语言设置不正确。如果想在AppWizard生成的工程文件中使用中文,在在MFC AppWizard的第1步中选择中文资源,选择Chinese(P.R.C),如果你在语言列表中没有找到有关中文的选项,说明你的VC++的中文支持模块没有安装。此时,应退出VC++,在VC++的光盘的DevStudioSharedIDEBinIDE目录下找到APPWZCHS.DLL文件,将其拷贝到硬盘的DevStudioSharedIDEBinIDE目录下即可,再启动VC++,就可以看到这一选项了。使用这一选项生成的工程文件中的所有资源都是中文的。VC++还提供了繁体中文(APPWZCHT.DLL)、日文(APPWZJPN.DLL)和韩文(APPWZKOR.DLL)的支持模块。

这种情况就是语言设置问题,与本身无关

情况2: 如果你的工程中的菜单、对话框、字符串等资源不是由AppWizard生成的,而是手工添加的,你必须保证该资源的Language选项为Chinese(P.R.C)。具体的做法是在资源列表中选择资源,然后在快捷菜单中选择Properties,在话框中设置Language下拉框。如果在Language中选择English,尽管在集成环境中可以正常显示中文,但编译后就变成了诸如"___.???"之类的乱码了。

情况3:方法1: 有一个解决方案不必从头作起:找到rc文件(资源文件),把其中LANGUAGE 9, 1的地方改为4,2;codepage(1252)改为codepage(936);另外把#include "afxres.rc" 改成#include "l.chsafxres.rc";把"afxres.rc" 改成"l.chs\afxres.rc"即可,其中的数据根据不同文字代码可能不同。

希望能够帮到你!

【参考资料:网络经验】

㈤ c语言代码编译通过,但输出时有乱码,什么原因

修改如下:
//---------------------------------------------------------------------------
#include<stdio.h>
void main()
{
void secret(char str1[],char str2[]); /*注意这里*/
char str1[10],str2[10]={0}; /*注意这里*/
int i;
printf("please input something");
gets(str1);

secret(str1,str2); /*注意这里*/
puts(str2); /*注意这里*/

}
void secret(char str1[],char str2[]) /*注意这里*/
{ int i;
for(i=0;i<10&&(str1[i])!=0;i++)
{
if (str1[i]<='z'&&str1[i]>='a')
str2[i]='0';
else
if (str1[i]<='Z'&&str1[i]>='A')
str2[i]='1';
else
if (str1[i]<='9'&&str1[i]>='0')
str2[i]='2';
else
if (str1[i]==' ')
str2[i]='3';
else
str2[i]='4';

}
/*注意这里*/
}

//---------------------------------------------------------------------------

㈥ 怎么编译前汉字显示正常,编译后就变成乱码了

你好,这个问题的原因主要在编码问题上,你可以在设置-编辑器中更改一下编码,如果你是Windows Xp的话,请选择windows-936,找准对应的编码就行了。
或者直接更改菜单栏中的编辑-文件编码-系统默认,不过这种修改方法,需要每次编程时都要更改设置才行。

㈦ (c语言)为什么这段程序编译运行以后是乱码

#include<stdio.h>

intmain(){

charc;

scanf("%c",&c);

chara,b,d;

for(a='A';a<=c;a++){

for(b=a;b<c;b++){//输出前置空格

printf("");

}

for(b='A';b<=a;b++){//输出A-a当前的值

printf("%c",b);

}

for(d=a-1;d>='A';d--){//输出一行a当前之后的大写字母

printf("%c",d);

}

printf(" ");//换行,一行输出结束

}

return0;

}

㈧ c语言编译运行乱码是什么原因

这种情况多数是由于操作系统的语言选项不正确引起的。建议你查看一下控制面板中的区域和语言选项,特别是有关“非Unicode程序的语言”,一定要选择成“中文(简体,中国)”。然后重启电脑。

热点内容
sqlserver2016r 发布:2025-03-16 11:15:58 浏览:24
网页登录找不到该服务器什么意思 发布:2025-03-16 11:14:19 浏览:831
网站搭建服务器搭建 发布:2025-03-16 10:33:27 浏览:795
游戏目录在哪里安卓 发布:2025-03-16 10:33:19 浏览:467
婉儿脚本 发布:2025-03-16 10:19:33 浏览:580
c语言ftp下载文件 发布:2025-03-16 10:05:02 浏览:307
手机帐户密码怎么找回密码 发布:2025-03-16 10:02:10 浏览:706
c语言位段的使用 发布:2025-03-16 10:00:38 浏览:572
象山编程 发布:2025-03-16 09:38:41 浏览:927
绿点掌知识薪资密码是多少 发布:2025-03-16 09:37:05 浏览:597