有什么方法可以把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占用八个BITs
Lines = 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)里面了。
![](https://profile-avatar.csdnimg.cn/6992e0293c314ba8bfb5f245a9decc83_qq_42035758.jpg!4)
C++ 数据转换 如何将文本文件(.txt)转换成二进制文件(.dat)?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- 可夫贺 2018-04-29 09:24关注
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();
上面为完整测试代码,题主可参看
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog