本文目錄一覽:
- 1、c語言運行後為什麼出現n多的燙燙燙燙燙!!!!
- 2、C語言 字元串的輸出,為什麼輸出那麼多『燙』呢?
- 3、c語言里運行的結果有一群燙燙燙是怎麼回事
- 4、c語言老是出現燙!
- 5、C語言中輸出燙怎麼改
- 6、C語言程序輸出有燙怎麼辦~
c語言運行後為什麼出現n多的燙燙燙燙燙!!!!
出現多個燙的原因可能是未對字元數組或字元指針進行初始化或賦值。
舉例說明如下:
char a[5];
printf(“%s”, a); // 出現多個燙,原因是未對字元數組a進行初始化或賦值
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語言里運行的結果有一群燙燙燙是怎麼回事
我想你可能是用了字元串,但是用printf的時候格式錯誤,解讀的時候它就把要輸出的東西解讀成「燙」了…
沒有把代碼發上來,我也不能確定哪裡出錯了,只能幫到這
自己再檢查檢查,有些編譯器不會報錯的問題
c語言老是出現燙!
出現燙,表示的是數組沒有進行初始化或賦值,
那個……取值運算符和++是同一優先順序的……會從左往右走……比如:*p++等於(*p)++
於是乎,你的賦值語句全部沒用,相當於整個數組幾乎只是最後一個*p = ‘\0’有用,*p等於str3,不影響參數,於是,沒有經過初始化和賦值的字元串,顯示為全是燙
C語言中輸出燙怎麼改
首先你要知道為什麼會輸出燙燙燙
看下面的例子
可以看出來,output數組前10項都被設置為’a’,也都正常輸出了,但是後面的部分輸出變成了燙燙燙
原因是字元串在輸出時,會從頭開始輸出,直到遇到’\0’停止
而output數組在我們使用之前沒有初始化過,所以除了前10項我們手動設置為’a’,剩下的數據還是混亂的值,所以就會輸出燙燙燙了
要解決這個問題,手動在字元串結尾處補一個’\0’即可,見以下代碼:
#include stdio.h
#include math.h
#include stdio.h
int main()
{
char output[100];
for (int i = 0;i 10;i++)
{
output[i] = ‘a’;
}
output[10]=’\0′;
//如果把上一句刪掉就會出現輸出燙的錯誤
printf(“%s\n”, output);
return 0;
}
C語言程序輸出有燙怎麼辦~
親 問題就是你輸入字元串後末尾沒有結束標記 你可以把你的字元數組設置大一點啊 ASCII碼一個字元佔一個位元組 萬一是UNICODE呢 佔兩個位元組了 設置大點沒關係的
char c[50];
gets(c) 或者 gets_s(c, 50)
後者是vc2008以上要用的 不然報錯這個函數不安全
用這個函數輸入的末尾會默認添加一個『\0』 結束標記的 結束標記也算一個字元哦
原創文章,作者:FWZB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140714.html