这是我用CFile的Write函数向文件写数据的代码。
现在有个问题是:打开文件查看输出结果  显示却是3412
请问这是为什么哦?如何能正常输出 1234 呢? CFile file; file.Open(_T("D://Test.txt"), CFile::modeCreate | CFile::modeWrite);
USHORT test = 0x1234; file.Write(&test, sizeof(test));

解决方案 »

  1.   

    因为x86是小端对齐的比如,0x1234这个数在内存中的排列为
    34 12如果你test =0x12345678  那么在内存中为
    78 56 34 12
      

  2.   

    你写入的是USHORT,当然你读取是也应该以USHORT方式读取,两者是对应的。你如果要想保存为1 2 3 4 格式,就应该0x1234按位取一个字节一个字节写入
      

  3.   


    写到数组里就不是这样输出了?
    我这样试了一下,结果还是一样的! USHORT test[1];
    test[0] = 0x1234; file.Write(test, sizeof(test));
      

  4.   

    定义一个8bit的数据类型,然后将要写的数据按字节填入
      

  5.   

    USHORT test = 0x1234;
    char buf[10] = {0};
    sprintf(buf, "%x", test);
    file.Write(buf, strlen(buf));
    file.Close();