Ⅰ c語言中為什麼出現現燙
出現「燙」的原因是由於字元數組中的某些數組元素沒賦值。
具體原因可以通過如下實例來進行說明:
char a[10];
a[0] = 'a';
a[1] = 'b';
a[2] = 'c';
a[3] = 'd';
printf("%s", a); // 輸出結果就會出現很多「燙」,因為只對數組a中前四個元素進行了賦值,後面的元素未進行賦值,所以計算機默認就輸出「燙」
如果作如下修改就會正常輸出
char a[10];
a[0] = 'a';
a[1] = 'b';
a[2] = 'c';
a[3] = 'd';
a[4] = '\0';
printf("%s", a); // 輸出abcd,因為加了結束字元'\0',而C語言中輸出字元串是以結束字元'\0'作為結束輸出的,所以只輸出'\0'前面的所以字元,即abcd
Ⅱ c語言運行後為什麼出現n多的燙燙燙燙燙!!!!
出現多個燙的原因可能是未對字元數組或字元指針進行初始化或賦值。
舉例說明如下:
chara[5];
printf("%s",a);//出現多個燙,原因是未對字元數組a進行初始化或賦值
Ⅲ c語言里運行的結果有一群燙燙燙是怎麼回事
我想你可能是用了字元串,但是用printf的時候格式錯誤,解讀的時候它就把要輸出的東西解讀成「燙」了...
沒有把代碼發上來,我也不能確定哪裡出錯了,只能幫到這
自己再檢查檢查,有些編譯器不會報錯的問題
Ⅳ c語言編譯時出現「燙燙燙燙燙燙燙燙燙」
字元數組沒有結尾符號,或者列印字元串的地址錯了
Ⅳ C語言運行時出現「燙燙燙燙燙燙燙燙燙」
分析
1、struct stu student[NUM]; //你不都說你定義了多個人,但只輸入了一次信息嗎。#define NUM 3/*人數*/
2、 case 2:print(student,NUM);break;//你調用輸出函數的時候NUM參數是輸出NUM個人,
3、因為只輸入一個student的信息,其他student[1]、student[2].......沒有值,直接輸出上次內存所存,這就是隨機的亂碼。
解決思路
方案1:
輸入信息的時候輸完NUM 次也就是3次。
方案2:
調用輸出的時候,只讓他輸出你所輸入信息的個數。
case 2: print(student,1);break; //這里參數二中NUM換成 1,因為你只輸入1次信息
方案 3: /**推薦方案*/
定義數組的時候初始化,使得其初始化都為0,這樣輸出的時候至少不會有亂碼
struct stu student[NUM] = {0};
或
struct stu student[NUM] ;
memset(student,0,sizeof(stu)*NUM);
Ⅵ C語言程序後面出現燙燙~~~~~
char message[number];你這個數組沒有賦初值並且在輸出的時候不是根據輸入個數來輸出的。個人覺得你寫的這個程序沒必要這么復雜,其實可以直接在輸出的時候判斷每個字元是否為輸入要刪除的那個,如果是就不輸出就可以了。
Ⅶ c語言出現燙燙
這是使用scanf必然會出現的現象,建議你最好是用以下函數來達成目的
getch();
getche();
kbhit();
這幾個函數都是非阻塞的,而且每一個需要多餘的回車,
用一個循環把他們組裝起來,然後每一次有按鍵的時候先把數據暫存起來,然後用ANSCII碼來檢測這個按鍵是否為你想要的數據,然後進行轉換,不是就扔掉,繼續等待按鍵,一直到數據收集完畢,這樣就避免了用戶的無效輸入。
用getch和getche接受的都是字元,就是說,你按下「1」鍵產生的是(char)'1' 而不是 (int) 1
這就是問什麼數據採集後要進行適當的兌換了。
至於具體的做法,相信這位兄弟已經了解了,關於ANSCII碼,字元型的數據的數值就是它本身的ANSCII碼值。