有什么方法可以把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();上面為完整測試代碼,題主可參看
慕的地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();- 2 回答
- 0 關注
- 4052 瀏覽
添加回答
舉報
0/150
提交
取消
