有什么方法可以把int 類(lèi)型的數(shù)組轉(zhuǎn)換成 unsigned char的數(shù)組? 因?yàn)槲椰F(xiàn)在從文本文件讀?。?-255)的數(shù)據(jù),一行一個(gè)數(shù)據(jù),讀取到在int數(shù)組每個(gè)數(shù)據(jù)占用三個(gè)字節(jié),我想只占用一個(gè)字節(jié),然后保存二進(jìn)制文件,請(qǐng)問(wèn)怎么可以解決呢? 例如,文本文件數(shù)據(jù)是255,這樣寫(xiě)入之后二進(jìn)制文本之后//ofstream fout("Binary.dat", ios_base::out | ios_base::binary);for (i = 0; i < LINES; i++) //輸出二進(jìn)制文本{out.write((char*)&BINARY[i], sizeof(BINARY[i]));}希望讀取到的二進(jìn)制數(shù)據(jù)還是255。題主在做隨機(jī)數(shù),需要用Binary,即每BYTE占用八個(gè)BITsLines = CountLines(filename);cout << "文件行數(shù):" << Lines << endl;// 讀取文件行數(shù)int *Bit = new int[Lines];int i = 0;while (!file.eof()){file >> Bit[i];i++;}file.close(); //讀取文本文件數(shù)據(jù)到數(shù)組,關(guān)閉文件for (i = 0; i < Lines; i++){cout << Bit[i]<<endl;}delete[]Bit;cin.get();//輸出數(shù)組內(nèi)容到屏幕目前,我只是把數(shù)據(jù)讀到一個(gè)int數(shù)組(Bits)里面了。
2 回答
汪汪一只貓
TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
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();上面為完整測(cè)試代碼,題主可參看
慕的地6264312
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
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 關(guān)注
- 4051 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
