C++怎么把文件读取成16进制的,显示出来,或者16进制的写入文件.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++怎么把文件读取成16进制的,显示出来,或者16进制的写入文件.相关的知识,希望对你有一定的参考价值。

C++怎么搞???我就是想把文件读取成16进制的,显示出来,或者16进制的写入文件.

#include <iostream>
#include <fstream>
#include <cassert>
#include <string>
#include <vector>
using namespace std;

class stu
public:
int no;
int score;
;

vector<stu> ss;

void readFromFile();
void writeToFile();
void inputData();

int main()


inputData();
writeToFile();
readFromFile();
for(int i=0;i<ss.size();i++)

cout<<ss[i].no<<" "<<ss[i].score<<endl;


return 0;


void inputData() //从屏幕获取数据


int score;
int no;
string str;
do
stu st;
cout<<"Enter you no : ";
cin>>st.no;

cout<<"Enter you score : ";
cin>>st.score;

ss.push_back(st); //存入学生管理向量

cout<<"是否继续输入数据:";
cin>>str;
while(str=="Y"||str=="y");



void readFromFile() //从文件中读取数据

string filename;
cout<<"Enter the readFile name : ";
cin>>filename;
ifstream infile;
infile.open(filename.data()); //将文件流对象与文件连接起来
assert(infile.is_open()); //若失败,则输出错误消息,并终止程序运行
for(int i=0;;i++)

stu st;
infile>>hex>>st.no>>st.score;
if(infile.eof())break; //到文件末尾,即不在读取
ss.push_back(st);


infile.close(); //关闭文件输入流
cout<<"The Data Input Succeed!\n";



void writeToFile() //输出到文件中

string filename;
cout<<"Enter the outFile name : ";
cin>>filename;
ofstream outfile;
outfile.open(filename.data());
assert(outfile.is_open()); //失败,则终止程序,并打印错误消息
for(int i=0;i<ss.size();i++)

outfile<<hex<<ss[i].no<<" "<<ss[i].score<<endl;

outfile.close(); //关闭输出流对象
cout<<"The Data Output Succeed!\n";



上述代码在vc++6.0测试通过 满足你的要求 有问题hi我
参考技术A 以二进制方式读或写就可以了,二进制和十六进制的区别就是4个二进制数就是一个16进制数。 参考技术B 最简单的方法就是二进制写入文件。just look here
写:
FILE* fp;
fp = fopen(filename, "w");
int a=0x1B;
if(fwrite(&a, sizeof(a), 1, fp) != 1)

perror("fwrite error");



FILE* fp;
fp = fopen(filename, "r");
int b;//这个要统一同样的类型哦。
if(fread(&b, sizeof(b), 1, fp) != 1)

perror("fwrite error");

这个时候你的b=0x1B;

反正你按什么顺序写进去的,就怎么读。
你可以一次写个整数数组,到时候直接读出来不要做任何处理就是那个值了。
也可以是结构体。ok it's over本回答被提问者和网友采纳
参考技术C ofstream outf("c:\\test.txt", ios::out) ;
outf << hex << 16 ;
楼主说的是这样吗?追问

你再多举一些例子我就给你分..
比如读取.
,还有一些指针SEEK之类的

参考技术D ofstream outf("c:\\test.txt", ios::out) ;
outf << hex << 16

如何把二进制用Excel或者.xls

具体是这样的,我把Excel文件使用二进制的方式存入数据库,存的时候成功了,可是现在读出来的时候出了问题,在页面显示的是乱码!如何从数据库把它读出来并正常显示?请各位高手解答,小弟不胜感激!!!可是我没分了。。。。。。
请问那位匿名的朋友的,我已经是用二进制的方式存人数据库,就是取出来的时候有问题,可以说的详细点吗。谢谢

第一步,桌面上打开一个Excel文档。

第二步,文档打开的主界面如图。

第三步,十进制转换二进制函数DEC2BIN有1个必选参数,1个可选参数。

第四步,举例,来更好地说明,需求如图。

第五步,输入完整的DEC2BIN函数。

第六步,回车后,看到DEC2BIN函数的结果。

第七步,将一个结果复制到其他栏,就可以看到所有的结果了。

参考技术A 二进制文件 打开二进制文件的语法格式如下:
Open pathname For Binary As [#]filenumber

说明: (1) 参数filename 和filenumber 分别表示文件名或文件号. (2)关键字Binary 表示打开的是二进制文件 (3)对于二进制文件,不能指定字节长度.每个打开的二进制文件都有一个自己的指针,文件指针是一个数字值,指向下一次读写操作的文件中的位置.二进制文件中的每个”位置”对应一个数据字节,因此,有n个字节的文件,就有1到n个位置. 我们可以用Seek()函数返回当前的文件指针位置(即下一个要读写的字节 );用Loc()函数返回上一次读写的字节位置,除非用Seek语句移动了指针,Loc()返回值总比Seek()的小1.我们来看下面的例子:
Open “student.txt” for Binary as #1

该语句用二进制的方式打开了student.txt文件.

你试试看本回答被提问者采纳
参考技术B 省事的方法,就是把你的Excel文件base64一下存到数据库里,读出后再base64解码存回Excel文件,再打开显示 参考技术C 写文件的时候设置的格式是否是二进制的,长度是否正确,建议用十六进制查看工具看看文件头是否正确,比较从数据库中读取的文件的长度和写成文件的长度是否一致。

以上是关于C++怎么把文件读取成16进制的,显示出来,或者16进制的写入文件.的主要内容,如果未能解决你的问题,请参考以下文章

mysql如何把16进制转换成中文字符显示

如何把二进制用Excel或者.xls

C语言程序,怎么把16进制转成字符:

怎样把文件转换成二进制形式的文本文件?

js怎样把10进制数转换成16进制数显示?

用MPLAB IDEv8.89 把从 PIC 芯片里读出来的汇编代码,怎么保存起来 ???