我是利用你们的光盘中的程序 c51中的exam7中的程序 在调试过程中,写入到U盘中的数据的格式不正确 我用的程序为: i = sprintf( mCmdParam.ByteWrite.mByteBuffer, "序号 操作员1 操作员2 日期 时间 \xd\xa", CH375vFileSize ); mCmdParam.ByteWrite.mByteCount = i; /* 指定本次写入的字节数,单次读写的长度不能超过MAX_BYTE_IO */ i = CH375ByteWrite( ); /* 以字节为单位向文件写入数据,单次读写的长度不能超过MAX_BYTE_IO */ mStopIfError( i );

/*Catch_Address(buffer); addr=0; number=buffer[2]*0x100+buffer[3];*/ addr=0; number=0x05; if(number) { for(number=5;number>0;number--) { user1=0x0201; user2=0x020a; year=0x06; month=0x05; day=0x26; hour=0x15; minite=0x39; second=0x30; len = sprintf( mCmdParam.ByteWrite.mByteBuffer, "%05d %04x %04x %02x.%02x.%02x %02x:%02x:%02x\xd\xa",(UINT16)number,(UINT16)user1,(UINT16)user2,(UINT8)year,(UINT8)month,(UINT8)day,(UINT8)hour,(UINT8)minite,(UINT8)second); /* 将二制制数据格式为一行字符串 */

输出的结果为: 序号 操作员1 操作员2 日期 时间 00005 0201 020a 605.260c.200 22:2930:3030 00004 0201 020a 605.260c.200 22:3030:3030 00003 0201 020a 605.260c.200 22:3030:3030 00002 0201 020a 605.260c.200 22:3030:3030 00001 0201 020a 605.260c.200 22:3030:3030 开门记录读取完毕 很显然,时间和日期应该是字节型的,为什么却有4位呢? 另外#define MAX_BYTE_IO 50

请问斑竹和各位大虾这是什么原因呢?