Quantum_107 2018-04-29 08:01 采纳率: 50%
浏览 3889
已采纳

C++ 数据转换 如何将文本文件(.txt)转换成二进制文件(.dat)?

有什么方法可以把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)里面了。

  • 写回答

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();
    

    上面为完整测试代码,题主可参看

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥40 通过编制程序计算圆管内层流充分发展对流换热,参数如图5-4,以及公式5-16所示,要求用表5-6对程序计算准确性进行验证
  • ¥20 该学习哪个编程语言? AI会取代程序员吗?
  • ¥15 ensp如何拼通IP地址
  • ¥15 saber软件导入Ibis模型报错
  • ¥15 商城生产日期批次库存问题
  • ¥15 esp8266控制共阳极wrgb灯板无法关闭所有led灯
  • ¥100 python读取速度问题
  • ¥15 stm32f407使用DMA问题
  • ¥15 您好 这个API接口该怎么弄 网站搭建好了 API也有 现在就不知道该怎么填写API 不知道怎么用
  • ¥88 用uniapp写一个多端的程序,用到高德地图,用高德的JSAPI吗?