有什么方法可以把int 类型的数组转换成 unsigned char的数组? 因为我现在从文本文件读取(0-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 关注
- 3976 浏览
添加回答
举报
0/150
提交
取消