‘壹’ c语言编译运行乱码是什么原因
这种情况多数是由于操作系统的语言选项不正确引起的。建议你查看一下控制面板中的区域和语言选项,特别是有关“非Unicode程序的语言”,一定要选择成“中文(简体,中国)”。然后重启电脑。
‘贰’ 我的C语言程序运行后为什么是乱码
有几个小问题:
第一:c语言一般不支持中文薯肢,如果你用vc6.0++就是无法打印中文,一定会乱码,建议用英文;
第二:如果你用的c语言编译器支持中文,如devc++,则可以使用中文;
第三:我们的使用的字符格式,最多的是UTF-8,把默认消键代码页格式改为UTF-8试试吧
希望我的分享对你有用,拿手巧感谢采纳
‘叁’ C语言文件输出时,输入数据后为什么会出现乱码
if(fwrite(&stud[i],sizeof(struct
studentType),1,fp)!=1)
简单看了下,这行有问题,往文件里写的时候是把一个字符串写进去,stud[i]是一个struct,强行把它序列化的话,内存中的存储不是连续的,这样写就会写入一些没用的数据,导致出错。考虑一下怎么把struct序列化,再看看struct的中的字节是怎么对齐的,建议而已
‘肆’ 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;
}
运行结果