Maison  >  Questions et réponses  >  le corps du texte

c++ - VS2017 fstream.write() génère toujours un 0x0d supplémentaire au milieu ?

#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, système Win7 x64
Version x86 (Win32)
S'il vous plaît dites-moi, que se passe-t-il ? Est-ce un cas ou un BUG ?

补充: 好像当输出的字节数大于等于19时,就会在中间多输出一个0x0d,而小于19个字节的输出就不会出问题

天蓬老师天蓬老师2685 Il y a quelques jours1191

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-05-16 13:29:22

    Veuillez utiliser ios::binary pour lire et écrire des fichiers binaires.

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

    répondre
    0
  • Annulerrépondre