BYTE 可以标示 0 - 255 之间的数值. 在做数值运算的时候BYTE可以很好的胜任. 然而当BYTE遇到了stringstream的时候. 万恶的事情发生啦!

int theNumber = 123;
char theChar = "ABC";
BYTE theBYTE 
= 0;
stringstream theStr;
theStr 
<< ">_<" << theNumber << theBYTE << theChar;

现在的theStr是什么内容呢?是">_<1230ABC"嘛? 很不幸的是把theStr以字符串形式输出时, 就会发现输出的只有">_<123". 后面那部分到那里去了呢? BYTE = unsigned char, stringstream 非常忠实的将BYTE视为char处理了, 所以没有将theBYTE转换成数字0, 而是直接将ASCII的0输出了, 当然 ASCII的0就是字符串结束符…… 至此所有的迷都被揭开了.

posted on 2006-09-07 16:05  时空旅者  阅读(672)  评论(0)    收藏  举报