㈠ 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.