stream-c++把double,int等数据类型直接写入文本文件,不要先变成字符串再写入,如何写?

问题描述

c++把double,int等数据类型直接写入文本文件,不要先变成字符串再写入,如何写?

比如0是int类型有4个字节就写4个字节,不要变成字符0再写入。还有必须能跨平台可运行于linux的。
我的代码这么写
int i1=2;
ofstream output("./1.txt", ios::binary);
output<<i1;

结果1.txt文件中保存字符2,我不是指定二进制方式ios::binary进行输出了吗?为什么还存放字符2呢??这样不行该怎么写呢?

望高手赐教啊,在线等着!

解决方案

知道答案了,应该这么写:

int i1=2;
ofstream output("./1.txt", ios::binary);
output.write((char*)(&i1),sizeof(i1)); //写入

int i2=0;
ifstream input("./1.txt",ios::binary);
input.read((char*)(&i2),sizeof(i2)); //读取

这可以满足需求,还有其他方法吗?

解决方案二:

filestream << i;
这就是二进制的

解决方案三:

另外,如果你直接写入文本文件这些数字,那么表现出来就是乱码。因为大部分的二进制数字都是不可打印的。

解决方案四:

你所想的是不可能实现的,因为c++=标准库只提供了二进制流和字符串这两种接口...考虑到效率与其他因素..

解决方案五:

http://blog.csdn.net/xiejianjun417/article/details/18075511

时间: 2024-10-29 12:43:26

stream-c++把double,int等数据类型直接写入文本文件,不要先变成字符串再写入,如何写?的相关文章

jsp-JSP传给action的是字符串类型,转换数据类型,让getlist()接收,求大神帮帮忙写下代码

问题描述 JSP传给action的是字符串类型,转换数据类型,让getlist()接收,求大神帮帮忙写下代码 JSP传给action的是字符串类型,怎么转换数据类型,然后让getlist()接收,求各位大神帮帮忙写下代码~ 如果能够给解释一下,那就千恩万谢啦 解决方案 可以通过强制转换在前面加上int 解决方案二: gongWenLeiBieList = dao.getList(Integer.parseInt(mingCheng));

C# double和decimal数据类型以截断的方式保留指定的小数位数_C#教程

项目中要用到以截断的方式取小数点后两位,故写了以下方法: 复制代码 代码如下: /// <summary> /// 将小数值按指定的小数位数截断 /// </summary> /// <param name="d">要截断的小数</param> /// <param name="s">小数位数,s大于等于0,小于等于28</param> /// <returns></retur

深入Protobuf源码-编码实现

基本类型编码 在前文有提到消息是一系列的基本类型以及其他消息类型的组合,因而基本类型是probobuf编码实现的基础,这些基本类型有: .proto Type Java Type C++ Type Wire Type double double double WIRETYPE_FIXED64(1) float float float WIRETYPE_FIXED32(5) int64 long int64 WIRETYPE_VARINT(0) int32 int int32 WIRETYPE_V

表格存储如何实现跨区域的容灾

系列文章 表格存储如何实现高可靠和高可用表格存储如何实现跨区域的容灾 前言 上一篇文章介绍了表格存储如何实现高可靠和高可用,本文会介绍表格存储如何做跨区域的容灾.容灾跟高可用在概念上有一些交叉,但是场景和相关技术体系有很多不同,所以单独写一篇介绍容灾的文章.容灾是在集群本身的高可用基础上,再提供一层保障,防止罕见但却严重的故障发生,因此,读者可以先阅读上一篇高可用的文章,对表格存储如何保障高可靠和高可用有一个了解. 本文首先会介绍容灾的一些背景和相关场景,以及实现数据库容灾的两个重要能力,即数据

iOS中 数据持久化 UI高级_17

数据持久化的本质就是把数据由内写到本地(硬盘中),在iOS指将数据写到沙盒文件夹下: 沙盒机制:指的就是采用沙盒文件夹的形式管理应用程序的本地文件,而且沙盒文件夹的名字是随机分配的,采用十六进制方法命名: =======================关于沙盒目录========================== 沙盒内部构造: 测试沙盒: 属性: @interface ViewController () @property (retain, nonatomic) IBOutlet UITex

非对称加密算法RSA使用注意事项

原文:非对称加密算法RSA使用注意事项 第一个问题,也是最重要的一个--RSA无法对超过117字节的数据进行加密!切记!其实也勿需要求对更大数据的加密,虽然网上已经有相关解决方案,比如BigInteger项目.但这点确实需要注意,如果对大于117字节的数据加密就会抛异常出来,说法还有点莫名其妙.考虑下RSA的主要用途就可以理解了,一般我们使用RSA的主要用途是进行数字签名,另外就是对"对称加密"算法的KEY和IV向量进行加密:   第二个问题,假设要对一个文本文件(比如xml文件)中的

c语言-关于double型和int型的问题,两种程序运行结果不同

问题描述 关于double型和int型的问题,两种程序运行结果不同 #includeint main(){ int i; double sumk=1; for(i=1sum=0;i<=1000;i++) { sum+=k/i; k*=-1; } printf(""%lfn""sum); return 0;} #includeint main(){ int ik=1; double sum; for(i=1sum=0;i<=1000;i++) { sum+

在将 varchar 值 &amp;amp;#39;JAZZ&amp;amp;#39; 转换成数据类型 int 时失败。

问题描述 在将 varchar 值 'JAZZ' 转换成数据类型 int 时失败. 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web

泛函编程(12)-数据流-Stream

   在前面的章节中我们介绍了List,也讨论了List的数据结构和操作函数.List这个东西从外表看上去挺美,但在现实中使用起来却可能很不实在.为什么?有两方面:其一,我们可以发现所有List的操作都是在内存中进行的,要求List中的所有元素都必须在操作时存在于内存里.如果必须针对大型数据集进行List操作的话就明显不切实际了.其二,List的抽象算法如折叠算法.map, flatMap等是无法中途跳出的,无论如何都一直进行到底:只有通过递归算法在才能在中途停止运算.但递归算法不够抽象,经常出