C++怎么把文件按照16进制进行读写?

 我来答
crj_0
2018-03-20 · TA获得超过9173个赞
知道小有建树答主
回答量:55
采纳率:100%
帮助的人:1.5万
展开全部

一、所谓的16进制只是2进制文件的一种简单的表达方式。读取16进制文件就等于读取2进制文件。直接使用文件操作函数的rb模式,即可读取2进制的文件。

二、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。

步骤:

1、#include<stdio.h>

2、int a;

3、char b,c[100];

4、int main(){

5、 FILE * fp1 = fopen("input.txt", "rb");//打开输入文件

   
undergrowth
2018-01-31 · TA获得超过1513个赞
知道小有建树答主
回答量:879
采纳率:0%
帮助的人:1205万
展开全部
#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我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式