導航:首頁 > 源碼編譯 > c語言代碼編譯出來是亂碼

c語言代碼編譯出來是亂碼

發布時間:2022-10-24 06:05:38

⑴ 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語言問題,為什麼輸出總是亂碼

看一眼就知道。。亂碼是因為你的指針沒有賦NULL,是野指針,指向了不明區域,所以會出現亂碼,以後定義指針最好int
*a
=
NULL;這樣子

⑶ 我的C語言程序運行後為什麼是亂碼

有幾個小問題:

希望我的分享對你有用,感謝採納

⑷ C語言為什麼會出現亂碼

完全沒看懂你的程序。
有明顯的幾個奇怪的地方。
int time = { 1 };
unsigned int k = { 0 };
這兩句不符合C語言語法吧,大括弧一般很少用的,一般用在數組上,但是你的變數明顯不是數組啊。

k = (unsigned int)malloc(sizeof(unsigned int) * time);
malloc函數,返回的是指針吧。你強制轉換的不是指針啊,一般沒人這么用,沒看懂,為什麼要強制轉換成unsigned int ?應該寫錯了吧,是 unsinged int *吧。
p = getchar();//
沒看懂,這里為什麼要getchar,是因為怕有臟東西嗎?這里會出問題的,但是代碼看不出會發生什麼問題。
scanf_s("%d", k, 8);
這里最好改成這樣吧,scanf_s("%d", k, sizeof(unsigned int));這樣比較安全,反正你要的是int,直接用sizeof,算出int的位元組數就可以了,不用自己知道int是多少個位元組,這樣可以避免出錯。
key[i] = { 0 };
這里則是,完全看不懂,因為不知道key是什麼,只知道是個key的數組,是什麼類型的,完全沒懂,只知道初始化為0。
key[i] = k; 這里完全沒看懂,只能猜了,循環32次,k是一個int的數,一般是4個位元組的數,每個位元組是8位,所以一個int是32位,你循環32遍,看起來是想把這個int數,一位一位的輸出的樣子。但是前面k是用mallco申請,k應該是個指針,不是int變數。直接把指針給一個數組,有點奇怪,所以應該是key[i]=*key;但是看起來,你是要一位一位的數據,而不是一整個int數,但是這里有個問題,我不知道,你是要低位先出,還是高位先出,而且C語言,想要一位一位的數據,要使用<<,>>左移和右移指令(這里不是C++,所以沒有被C++的std::cout復用於輸出,這是個標准C語言的底層操作符,一般嵌入式的用的多,IT用的少,所以一般不常用),所以一位一位的輸出應該寫成key[i]=(*k)>>1;或者key[i]=(*k)<<1,這樣是分別是左移一位,右移一位後,把數據給key的數組,這里,要根據你自己的代碼要實現的功能,去調整。
printf("%d", key); 我不知道,你是想輸出位數據,還是什麼。如果想看位數據,應該輸出二進制的數不就好了。而不用輸出int型數據。

⑸ C語言編程出現漢字輸出亂碼現象

C語言中一個漢字是由兩個位元組來表示的
而C語言編程主要是以位元組為單位來顯示
所以你的C語言輸出中,如果漢字顯示只顯示了一個位元組,就會有亂碼出現了
正常的做法是,你的printf輸出時,符號的長度要為偶數位元組。

⑹ C語言出現亂碼

有兩個問題:

一、變數a是float型,用%d輸入輸出會出錯,可以考慮把變數d定義成int型;

二、姓名是字元串,不是字元,可以考慮用字元數組來存儲。

修改如下:

#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta;
floatb,c;
chard[10];
printf("請輸入你的姓名: ");
gets(d);
printf("請輸入你的年齡: ");
scanf("%d",&a);
printf("請輸入你的身高m: ");
scanf("%f",&b);
printf("請輸入你的體重kg: ");
scanf("%f",&c);//以下代碼測試輸入的正確性
printf("姓名:%s ",d);
printf("年齡:%d ",a);
printf("身高:%.2fm ",b);
printf("體重:%.2fkg ",c);
return0;
}

⑺ (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程序的語言」,一定要選擇成「中文(簡體,中國)」。然後重啟電腦。

⑼ C語言中,這段代碼運行時為啥會出現亂碼

原有的程序代碼沒有任何的啊,實現了所有的要求,並且沒有出現亂碼:

閱讀全文

與c語言代碼編譯出來是亂碼相關的資料

熱點內容
同城公眾源碼 瀏覽:474
一個伺服器2個埠怎麼映射 瀏覽:282
java字元串ascii碼 瀏覽:59
台灣雲伺服器怎麼租伺服器 瀏覽:460
旅遊手機網站源碼 瀏覽:315
android關聯表 瀏覽:929
安卓導航無聲音怎麼維修 瀏覽:320
app怎麼裝視頻 瀏覽:423
安卓系統下的軟體怎麼移到桌面 瀏覽:80
windows拷貝到linux 瀏覽:753
mdr軟體解壓和別人不一樣 瀏覽:886
單片機串列通信有什麼好處 瀏覽:324
游戲開發程序員書籍 瀏覽:848
pdf中圖片修改 瀏覽:275
匯編編譯後 瀏覽:478
php和java整合 瀏覽:833
js中執行php代碼 瀏覽:447
國產單片機廠商 瀏覽:62
蘋果手機怎麼設置不更新app軟體 瀏覽:289
轉行當程序員如何 瀏覽:498