[C/C++] 別忘了在char陣列結尾加/0...
今天就為了這個問題debug很久...問題是這樣的:我想要製造儲存一個BIG5字元的char陣列。(每個BIG5字元需要兩個char儲存,舉例來說,"A5 D0"為"田")理所當然寫了這樣一段:
char BIG5_character[2];
BIG5_character[0] = 0xA5;
BIG5_character[1] = 0xD0;
cout << BIG5_character;
理論上應該會看到"田",實際上田是出來了,但後面跟了一串亂碼:"田p~+" 原因在於一個完整的字串,必須要在結尾放一個結束字元 \0,忘了放則cout會繼續往下輸出。
因此把原code修改一下:
char BIG5_character[3];
BIG5_character[0] = 0xA5;
BIG5_character[1] = 0xD0;
BIG5_character[2] = 0; // 結束字元的ASCII編號是0
cout << BIG5_character;
這樣就可以得到正確輸出"田"了,不過這麼基本的東西我竟然到現在才知道... STL用太多了XD
留言
張貼留言