㈠ C语言运行中文乱码
因为中文是占2个字符的 程序可以这么写
#include
#include
void shuchu(char shuchu[])
{
int i=0;
while(shuchu[i]){
printf("%c%c",shuchu[i],shuchu[i+1]);
printf(" ");
Sleep(1000);
i=i+2;}
}
main()
{
char b[]="我们";
shuchu (b);
}
㈡ c语言出现乱码
有两个问题:
一、变量a是float型,用%d输入输出会出错,可以考虑把变量d定义成int型;
二、姓名是字符串,不是字符,可以考虑用字符数组来存储。
修改如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
float b,c;
char d[10];
printf("请输入你的姓名:\n");
gets(d);
printf("请输入你的年龄:\n");
scanf("%d",&a);
printf("请输入你的身高m:\n");
scanf("%f",&b);
printf("请输入你的体重kg:\n");
scanf("%f",&c); //以下代码测试输入的正确性
printf("姓名:%s\n",d);
printf("年龄:%d\n",a);
printf("身高:%.2fm\n",b);
printf("体重:%.2fkg\n",c);
return 0;
}
㈢ c语言编译运行乱码是什么原因
这种情况多数是由于操作系统的语言选项不正确引起的。建议你查看一下控制面板中的区域和语言选项,特别是有关“非Unicode程序的语言”,一定要选择成“中文(简体,中国)”。然后重启电脑。
㈣ (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语言,输出乱码问题。怎么办
"a[10]是在子函数中定义的,生命周期应当和子函数一样。出了子函数就会被销毁、
你在主函数中调出使用leftTag(input)后,a[10]是在子函数中分配的内存空间。回到,主函数后你还要引用那块被销毁了的内存。打印出来的肯定是乱码。
知道了问题的所在。相应的处理方法就是。增加a[10]所对应的内存空间的生命周期。
1、用malloc函数使在堆上分配内存。
#include
<string.h>
#include
<stdio.h>
#include
<malloc.h>
char
*leftTag(char
*s2)
{
char
*s1
=
(char*)malloc(10
*
sizeof(char));
//注意这里
strcpy(s1,"<");
strcat(s1,s2);
strcat(s1,">");
return
s1;
}
int
main()
{
char
*input="abc";
printf("%s",leftTag(input));
return
0;
}
2、a[10]在主函数中定义,生命周期自然就和主函数一样了。
#include
"string.h"
#include
"stdio.h"
char
*leftTag(char
*s2,char
*a[])
//
这改了
{
char
*s1;
strcpy(a,"<");
s1=a;
strcat(s1,s2);
strcat(s1,">");
return
s1;
}
int
main()
{
char
*input="abc",
a[10];
printf("%s",leftTag(input,a));
return
0;
}"
㈥ C语言输出中文乱码
提几个建议。1)没给出str的大小,不知道你定义的多大。至少str要保证120以上。考虑用2的倍数最优可以char
str[122]并且因为系统将自动在最后加'\0'。最好设定读取121为好。以免读取半个中文字。2)fgets的用法问题。
追加返回值的判断为好。if(fgets(str,120,fp)!=null){
printf("%s\n",str);}3)关于出现乱码的问题,估计你的文件中有中文汉字。读取到119位的时候正好是某个汉字的前一半。要解决这个if(fgets(str,121,fp)!=null)
这里120
改成读偶数个121。另外文件最好用宽字符的。就可以避免乱码了。
㈦ 问一下C语言编译时出现的乱码问题
你看看你括汉字的引号看是不是中文状态输入的,可以输入中文的,不过最好你还是用DOS版的TC,不要用Windows版的,如果要用windows版的编译器,VC是个不错的选择
㈧ c语言运行结果乱码怎么解决
发你的代码看看
max与min没有初始化
还有就是for语句后多了一个分号
修改后的代码如下:
#include<stdio.h>
main()
{
int max,min,n,m,i;
printf("输入n:");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
printf("输入第%d个数:", i);
scanf("%d", &m);
if (i==1)
{
max=min=m;
}
else if(m>max)
{
max=m;
}
else if(m<min)
{
min=m;
}
}
printf("max=%d\nmin=%d",max,min);
}
㈨ C语言编译乱码
原因在这里你第一次写入write(fd1, buf_read, 10);的时候buf_read里是随机值。
ret = write(fd , buf, 10);而这里面是hello不会出现乱码。
char buf_read[100] ;
char buf_bu[100];
你把这两行移到main外面变成全局变量这样会初始为0.