作者fasthall (Xen)
看板C_and_CPP
標題[問題] c++的array字串問題
時間Sun May 3 13:41:14 2009
小弟最近寫程式遇到一個問題
我用ifstream開了一個input並且開檔成功
這時候有個char code[4]
我用cin >> code輸入"qwer"
印出來是qwer無誤
但是如果我用for(int i = 0; i < 4; ++i) input >> code[i];
這樣會印出qwer加一串亂碼
導致我用strcmp會出問題
請問為什麼會印出超過陣列範圍的東西?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.221.33
1F:→ fasthall:然後我發現一開始先code[4]=0就好了 為什麼會這樣 05/03 13:55
2F:推 LiloHuang:strcmp 他會去找 C-Style string 的 \0 (NULL字元) 05/03 13:57
3F:→ LiloHuang:如果你要這樣比較的話 建議你用 memcmp 順便指定長度 05/03 13:57
4F:→ fasthall:感謝解答 我再去看看DOC 05/03 14:08
5F:推 stonehomelaa:qwer\0 5 bytes..... 05/03 14:11