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





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