zoukankan      html  css  js  c++  java
  • std::ofstream由二进制流写文件的问题

    从MPQ包中读取二进制流出来然后文件写到硬盘。

    DWORD size = SFileGetSize(hFile);

    char* buffer = new char[size];

    std::ofstream ofs;

    ofs.open(name);

    ASSERT(ofs.good());

    ofs.write(buffer, size);

    ASSERT(ofs.good());

    ofs.close();

    .xml,.lua,等文本都是对的,唯独.jpg这些图片些不对!

    open改为ofs.open(name, std::ios::out | std::ios::binary);

    就对了!

    原因应该是ofstream打开文件时默认是文本格式吧。。。

    void open(
        const char *_Filename,
        ios_base::openmode _Mode = ios_base::out,
        int _Prot = (int)ios_base::_Openprot
    );
    void open(
        const char *_Filename,
        ios_base::openmode _Mode
    );
    void open(
        const wchar_t *_Filename,
        ios_base::openmode _Mode = ios_base::out,
        int _Prot = (int)ios_base::_Openprot
    );
    void open(
        const wchar_t *_Filename,
        ios_base::openmode _Mode
    );

  • 相关阅读:
    LeetCode 260
    LeetCode 258
    LeetCode 237
    LeetCode 226
    LeetCode 203
    LeetCode 202
    codeforces 7D
    codefroces 7C
    codeforces 7B
    codeforces 6E (非原创)
  • 原文地址:https://www.cnblogs.com/kex1n/p/3173894.html
Copyright © 2011-2022 走看看