c++ - VS2017 fstream.write() 總是在中間多一個輸出一個0x0d ?
天蓬老师
天蓬老师 2017-05-16 13:27:22
0
1
1241
#include "stdafx.h"
using namespace std;
int main() {
    ofstream out("out.dat");
    char ss[19] = { 0x78, 0x9c , 0xe3 , 0x62 , 0x60 , 0xe0
        , 0x62 , 0x60 , 0xf5 , 0x49 , 0x2d , 0x4b , 0xcd
        , 0x61 , 0x66, 0x60  , 0xa9 , 0x0a , 0xc8 };
    out.seekp(0);
    out.write(ss, 19);
    return 0;
}

输出: 20个字节

789c e362 60e0 6260 f549 2d4b cd61 6660
a90d 0ac8 
  ||________多了一个0x0d

VS2017,Win10SDK,Win7 x64系統
Release x86(Win32)
求教,這是怎麼回事?是個案還是BUG?

#補充: 好像當輸出的位元組數大於等於19時,就會在中間多輸出一個0x0d,而小於19個位元組的輸出就不會出問題

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(1)
洪涛

二進位檔案讀寫請使用ios::binary

ofstream out("out.dat", ios::binary);

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板