作者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