std ofstream由二進位製流寫檔案的問題

2022-05-19 18:37:52 字數 889 閱讀 8143

從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

);

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...

mysql二進位制 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...