如何读取二进制文件到一个string类型中

rt,用c++如何读取二进制文件到一个string类型中,
急求,急求

0

2个回答

如下代码,先在string 中分配大小,然后读取,如果要显示字符串中的内容,需要将内存中的内容转换为16进制或者其他的显示方式。

#include <stdio.h>
#include <string>
using namespace std;
int main(int argc , char** argv)
{
    string s;
    FILE *fp = fopen("c:\\test\\xx.exe","rb");
    if(fp)
    {
        fseek(fp,0,SEEK_END);
        int len = ftell(fp);
        fseek(fp,0,SEEK_SET);
        s.resize(len);
        fread((void*)s.data(),1,len,fp);
        fclose(fp);
    }
    else
    {
        printf("fopen error\n");
    }
    return 0;
}
0
string str;
char *pStr="hello myFriend";
str+=pStr
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于将string类对象存入二进制文件
之前我有遇到过一个练习题,要我将string类对象存入二进制文件中,而众所周知,二进制文件是不可以存储指针的,因为当你读取二进制文件里的指针的时候,这个指针原来指向的内存地址已经被回收了,这是无意义了。 然后书上介绍了一种方法,先将string对象里面存储的字符串数目存储在一个基本类型中,书上用的是size_t,然后用循环将二进制里的字符提取出来并插入string对象中,而存入则是使用data()
Java读写二进制文件到String,再写入二进制文件
概述java读写文件的有很多种方式,基本都是采用java.io的inputStream和各种基于inputstream的封装实现对文件的读写,最原始的接口提供的便是基于byte的读写,而String可以看做是char[],一个char是8个byte。在最原始的ASCII编码中,我们采用一个字节 也就时8位来表示一个字符(图形字符或者控制字符),而后来1个字节不足以表示现实中的所有字符,于是出现了各种
C++ 使用二进制读写整数类型
C++ 二进制读写整数由于文本文件中会存在各种问题,比如说无法区分数据类型。拿项目中的代码当作例子来讲,我现在需要保存一个二维整数类型的vector到硬盘上,因为每次生成这个vector需要花费大量的时间,那么一个很直观的想法就是将vector直接保存到硬盘上,然后直接从硬盘读取这个数据。但是,问题来了,如果我们使用文本的形式写入硬盘时候,那么vector中的一些数据将会变成一些其他符号,比如说回车
C#如何读取二进制文件(float32)
今天碰到一个问题,手上有一个二进制文件,里面的数据是由一个一个的float32类型数值组成,现在需要在C#中读取这个文件中的所有数据。 首先找到C#中用于读取二进制文件的有BinaryReade这个类,那么关于这个类的描述及其方法参见MSDN: https://msdn.microsoft.com/en-us/library/system.io.binaryreader_methods(v=v
保存含string 成员的结构体或类到文件中的注意事项
将结构体信息保存到文件中时,需要特别注意以下两点: 1. 最好不要将动态申请的地址(包括string 类)直接保存到文件中。 2. 如果设计的结构体中存在指针变量,并且需要保存结构体信息,那么不但需要保存结构体,而且保存指针指向的内容。 例如: struct Book{ string title; double price; string author; }; 如果直
C++:读写二进制文件到float数组
在以下的代码中,我们将写入一个float数组到1.txt中,并且读取出来。 主要采用了fstream这个库,代码如下: #include #include #include int main(){ float* f = new float[12]; for (int i = 0; i 12; i++) { f[i] = i + i / 100.
Java 文本文件和二进制文件的读取(转)
一,文本文件的读取 1,FileInputStream:按字节读取文件 1.1,导入包 import java.io.FileInputStream; java.io.InputStream; import java.io.*; 1.2,生成一个InputStream对象 InputStream in = new FileInputStream(&quot;myfile\\a.tx...
字符串的二进制存储读取
问题描述:C++用CArchive类存储的文件,Unicode编码的,用C#的BinaryReader读取 现状:C#也设置为Unicode格式,C++的Int用C#的ReadInt32,C++的double用C#的ReadDouble正常读取,但是字符串碰到了问题。 分析: 1. C++中的CString存储的时候,存储为FFFEFF 然后后面是字符串的长度【Unicode一个字符占2个字
[Java]二进制文件读写操作
简单的Java二进制读写上手 import java.io.*; public class Test { public static void main(String[] args) throws IOException { //复制31份目标文件 for(int i=0;i&lt;=30;i++) { File file1=new Fi...
JAVA之读取二进制文件
0 引言 最近老师让写一个程序,作为学习JAVA的练习。目的在于:将一个二进制文件中的数据读取出来,其中数据包括点的位置信息和压力值及状态。将这些数据画作图像的形式展示。 本小程序分为以下几部分: (1)读取二进制文件;其中需要考虑二进制文件读出来的是十进制数,需要将二个字节合成一个short型,并转换为int型值。 (2)画图;根据读取到的点的信息,循环,如果状态是画,则将该点与上一点相...
ruby/python利用pack unpack读取二进制文件
ruby的pack和unpack方法其实和python里面的struct的pack和unpack的方法是一样的(具体使用起来有区别),能够和c语言类型(确切是系统类型)进行交互。 比如说c语言的整型是4个字节,而ruby的int其实是个类根本无法统一,这样读写二进制文件肯定不对,于是可以用Array#pack String#unpack来解决参考资料Ruby string pack unpack
用好c++中的string类型
教会你如何使用c++中的一个重要类型---string。
java实现解析二进制文件(字符串、图片)
1、需求说明,实现细节要求: 解析二进制文件 files\case10\binary,其中包含一个字符串和一张图片,数据文件格式为字符串数据长度(2字节)+字符串内容+图片数据长度(4字节)+图片数据,数据长度均为数据字节长度,高位在后,字符串为UTF-8编码,请解析,输出字符串内容,图片文件保存为files\case10\test.png。 2、实现代码: /** * */ pack
Tensorflow直接读取二进制文件
Tensorflow直接读取二进制文件Tensorflow可以直接读取记录为固定长度的bin文件,比如cifar-10,流程基本与读取csv文件一直,只有一些细微的差别。import tensorflow as tf import numpy as np# 预定义图像数据信息 labelBytes = 1 witdthBytes = 32 heightBytes = 32 depthBytes =
C语言读取二进制文件
脚本语言使用习惯了基本上不愿意去考虑C语言的文件处理功能,若不是近期看到了类似的东西又遇上了这方面的需要,或许这个简单的功能我永远也不会去碰。        其实,解决C语言的二进制未见解析很简单,就是一个简单fopen函数的使用而已。其余的操作跟常用的脚本语言其实也没有太大的差异。代码如下:   1 #include "stdio.h"   2    3 FILE*fp;   4 
python读取二进制文件中的浮点数数组
python读取二进制文件中的浮点数数组
C++读写二进制格式文件
在实际应用中,为了节约存储空间,文件多会以二进制格式保存,所以有必要了解如何在C++中读取二进制文件中的数据。
unity - 二进制文件操作-存储与读取
目标:实现数据存储为二进制文件,然后通过二进制文件解析数据。 目标分为三个阶段:1、将数据结构转化为二进制(至于数据是怎样读取进来的这个就不说了,因为方式比较多,但是读取进来一定都会以特定的数据结构形式来保存)。2、加载二进制文本。3、加载为对应的数据结构。 阶段一:将数据结构转化为二进制有两种方式:1:利用C#的BinaryWrite,2:使用函数把数据转化成byte数组,然后在写入
C++二进制文件读写
要求:  用fstream类创建并打开二进制文件  在文件中存入int,double 5 个基本数据类型  自定义类,并在文件中存入一个类对象  从文件中读取所有基本数据类型  从文件中读取第3个基本类型数据       从文件中读取类对象并使用#include&amp;lt;iomanip&amp;gt; #include &amp;lt;fstream&amp;gt; #include&amp;lt;iostream&amp;gt; #in...
二进制文件与字符串数据转换问题
当存储为二进制文件时,读取需要进行转换,当然str到二进制格式也需要进行转换,方法如下:__author__ = 'jcy'# 保存至文件def savefile(savepath,content): fp = open(savepath,&quot;wb&quot;) fp.write(content.encode()) #str转换为二进制存储 fp.close()# 读取文件def readfile(path)...
基于C++实现文件的明文和二进制读写
c++文件二进制读写
delphi 记录类型保存为二进制文件
unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls; type   TMyRec = record     //定义Record     Name: string[10];     Sex: str...
C++:string的读入
问题描述 最近需要使用C++通过cin的方式读取一段字符串,然后发现普通的cin无法解决,需要使用getline。 cin无法正常工作的原因是由于其遇到空格即为停止读入,不能完整读取一段字符串。 解决代码 #include &amp;lt;iostream&amp;gt; #include &amp;lt;string&amp;gt; using namespace std; int main() { str...
Matlab中二进制数据文件的读写
Matlab中二进制数据文件的读写 fopen fwrite fread fclose
QT读取二进制文件
void MainWindow::ReadPicture() { QByteArray m_data; QFile file("H:/BaiduYunDownload/Cache/test.jpg"); if(file.open(QIODevice::ReadOnly)) { m_data = file.readAll(); cout
fstream读写二进制文件的方法
#include #include using namespace std; int main() { ofstream T; T.open("myfile.dat",ios_base::out|ios_base::binary); float **MyNum; MyNum=new float *[10]; for(int i=0;i { MyNum[i]=new flo
NodeJS研究笔记:利用Buffer类的二进制数据读取接口解析ELF文件格式
javascript 作为前端开发语言,自古来对二进制数据的读取解析方面的支持都很薄弱,一般来说,解析二进制数据时,往往是将数据转换成字符串,然后运用各种字符串操作技巧来实现二进制数据的读取。由于NodeJS 作为后台服务器开发平台,数理逻辑的设计需求超越javascript作为前端语言时界面UI的设计需求,因此,加强二进制数据的读取功能显得越发重要,幸运的是,NodeJS提供了Buffer类,该类
将double类型的数据写入二进制文件,从二进制文件中读取double类型数据
这是C的代码  //写入二进制文件   FILE *f=fopen("F:\\g.txt","wb+"); double d=123456123.1231231131; fwrite(&d,sizeof(double),1,f); fclose(f); //从二进制文件读出 FILE *fop=fopen("F:\\g.txt","rb"); dou
numpy中二进制格式的数据存储与读取
使用save可以实现对numpy数据的磁盘存储,存储的方式是二进制。查看使用说明,说明专门提到了是未经压缩的二进制形式。存储后的数据可以进行加载或者读取,通过使用load方法。 In [81]:np.save('demo',data1)        通过以上操作,数据data1被存储到了demo文件中,numpy会自动加上npy的文件后缀名。 In [82]: a =np.load('de
python中读写二进制文件
# f = open("test4.txt", 'w') # # f.write(b'hello world') # TypeError: write() argument must be str, not bytes # # f.close() f = open("test4.txt", 'wb') # 二进制写模...
2018.03.28
http://blog.csdn.net/csapr1987/article/details/7469769 glob http://blog.csdn.net/A632189007/article/details/77989287 numpy astype https://www.cnblogs.com/hhh5460/p/5129032.html http://www.mamicode.com...
判断文件是否为二进制
在工作中,碰到处理STL文件,有时候拿到的文件是二进制,有时候又是ASCII, 所以想着写个方法进行判断,然后再选择打开方式。话不多说,上代码! enum FileTypeEnum { FileTypeUnknown, FileTypeBinary, FileTypeText };FileTypeEnum
读取String数组内的内容
package Number; public class T1 { public static void main(String[] args){ String i[]={"中国","美国","日本","韩国","马来西亚"}; System.out.print(i[0]+i[1]+i[2]+"\n"); System.out.print(i[3]+i[4]); } }
c#读取二进制文件c#读取二进制文件
c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件
二进制文件的读取与写入
能够实现二进制文件的读取和写入,二进制文件的保存类型,都可以自己定义,这个关于一些数据的保密,是有作用的。
Java文件操作(二):二进制文件
本文介绍Java的文件操作,包括一些高级的文件操作类及其方法 二进制文件、字节流概述 在我的博客Java文件操作(一)中介绍了Java文件读写的基本知识 1)File类用来创建一个新的文件对象 2)Scanner类、FileReader类用来读取(文本)文件 3)PrintWriter类、FileWriter类用来写入(文本)文件 /**使用PrintWriter对象对...
java读取文件内容为string字符串
直接就把项目中的方法贴出来吧/** * 读出城市列表文件 */ private String readCityFile() { File file02 = new File(path_xinfu, "/cityList.json"); FileInputStream is = null; StringBuilder stringBuil
【IO流】DataOutputStream DataInputStream 数据输入输出流 用于读取二进制
DataOutputStream DataInputStream  数据输入输出流  用于读取二进制/** * DataOutputStream DataInputStream * 数据输入输出流 用于读取二进制 * @author xiazhang * @date 2017-6-4 */ public class DataOutInputStreamTest { /**
Qt实现GUI的二进制文件读写操作(源码分析+工程打包+测试例子)
还有一篇博客,希望能分享点东西, 直接百度搜"Qt实现GUI的二进制文件读写操作(源码分析+工程打包+测试例子)"
c++二进制文件的读写操作
相比于普通的文本文件,二进制文件的以字节为存储单位多出了许多优点,下面是有关二进制文件的读写操作。 主要用到两个函数,在头文件fstream中。读read,写write。下面详情。 (一)写操作。 ofstream write(char *buffer, int length) buffer是变量指针,一般需要强制转化成char *类型,然后加取地址符,因为任何内容都可以表现成字符的形式,而