亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++ 數據轉換 如何將文本文件(.txt)轉換成二進制文件(.dat)?

C++ 數據轉換 如何將文本文件(.txt)轉換成二進制文件(.dat)?

C++
牛魔王的故事 2018-10-29 09:09:06
有什么方法可以把int 類型的數組轉換成 unsigned char的數組? 因為我現在從文本文件讀?。?-255)的數據,一行一個數據,讀取到在int數組每個數據占用三個字節,我想只占用一個字節,然后保存二進制文件,請問怎么可以解決呢? 例如,文本文件數據是255,這樣寫入之后二進制文本之后//ofstream fout("Binary.dat", ios_base::out | ios_base::binary);for (i = 0; i < LINES; i++) //輸出二進制文本{out.write((char*)&BINARY[i], sizeof(BINARY[i]));}希望讀取到的二進制數據還是255。題主在做隨機數,需要用Binary,即每BYTE占用八個BITsLines = CountLines(filename);cout << "文件行數:" << Lines << endl;// 讀取文件行數int *Bit = new int[Lines];int i = 0;while (!file.eof()){file >> Bit[i];i++;}file.close(); //讀取文本文件數據到數組,關閉文件for (i = 0; i < Lines; i++){cout << Bit[i]<<endl;}delete[]Bit;cin.get();//輸出數組內容到屏幕目前,我只是把數據讀到一個int數組(Bits)里面了。
查看完整描述

2 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

 ofstream fout("abcd.dat",ios::binary);
    int Bit[2] = {0, 1};
    int Lines = 2;
    for (int i = 0; i < Lines; i++)
    {
    unsigned char ch = static_cast<unsigned char>(Bit[i]);
    fout.write((char  *)&ch, sizeof(unsigned char));
    }
    fout.close();

上面為完整測試代碼,題主可參看


查看完整回答
反對 回復 2018-11-03
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

 ofstream rs("xxx,dat",ios::binary);
for (i = 0; i < Lines; i++)
{
unsigned char ch = (unsigned char)Bit[i];
rs.write((unsigned char *)&ch, sizeof(unsigned char);
}
rs.close();


查看完整回答
反對 回復 2018-11-03
  • 2 回答
  • 0 關注
  • 4052 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號