C++ 使用二进制读写整数类型

本文介绍了C++如何进行二进制文件的读写操作,特别是在处理整数类型数据时,避免文本格式带来的问题,如数据类型混淆和无效字符。通过使用二进制模式,可以确保数据在读写过程中的一致性,同时提到了大端和小端模式在处理二进制数据时需要注意的问题。
摘要由CSDN通过智能技术生成

C++ 二进制读写整数

由于文本文件中会存在各种问题,比如说无法区分数据类型。拿项目中的代码当作例子来讲,我现在需要保存一个二维整数类型的vector到硬盘上,因为每次生成这个vector需要花费大量的时间,那么一个很直观的想法就是将vector直接保存到硬盘上,然后直接从硬盘读取这个数据。

但是,问题来了,如果我们使用文本的形式写入硬盘时候,那么vector中的一些数据将会变成一些其他符号,比如说回车符,换行符等等。并且我们写入的时候如果数据之间没有任何标记,那么写入的将会是一串连续的数字,比如说:

fstream file(fileName,ios::in);

file>>1>>2;

那么写入将会是12,我们没有办法区别是1,2还是12。这样文件读出来的时候将会出现问题。
如果我们在每一个数字后面添加一个空格是一个不错的想法,但是这样会写入大量无效的数据。读取时候也会麻烦。这就是我们为什么读写二进制的原因,如果使用二进制读写将不会存在这个问题。

写入二进制文件

ofstream out(filename,ios::binary);

int num = 20;

out.write((char*)&num, sizeof(int));

out.close();

读取二进制文件

ifstream out(filename,ios::binary);

int num;

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值