发现vc的一个bug

 一个简单的程序:
#include <fstream>

int main(int argc, char* argv[])
{
 using namespace std;

 unsigned char data[] = { 0xFF, 0x01, 0x02 };

 basic_ofstream<unsigned char> ofs("a.bin", ios_base::binary);
 ofs.write(data, sizeof(data));
}
但a.bin中只有0x01和0x02,0xFF丢失了
究其原因,是由于char_traits<unsigned char>也可以实例化,而char_traits<unsigned char>::eof()返回0xFF,所以被认为是eof而不予输出。在g++下,这段程序编译失败,显示找不到char_traits< unsigned char>::eof()。

posted on 2004-07-24 17:26  游戏引擎开发网  阅读(1013)  评论(6)    收藏  举报

导航