请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于二进制文件操作问题

// demo_io.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int static const num = 1024;
void copyFile(const string& str, const string& dst)
{
	//打开源文件和目标文件
	ifstream in(str.c_str(), ios::in | ios::binary);//读取、二进制方式
	ofstream out(dst.c_str(), ios::out | ios::binary|ios::trunc);//写入、二进制、覆盖方式

	//判定是否打开成功
	if (!in || !out)
	{
		cout << "Open File failed" << endl;
	}

	//进行写入
	char temp[num];
	while (!in.eof())
	{
		in.read(temp,num);//读取文件内容 放入缓冲区temp里 每次读num(1024)个字节
		streamsize count = in.gcount();//记录I/O 缓冲区大小的有符号整数类型      //gcount()返回最近的无格式输入操作所释出的字符数。
		out.write(temp, count);//写入文件,将temp中的字节依次写入temp中
	}

	//关闭文件
	in.close();
	out.close();
}
int main()
{
	ofstream data("data.txt",ios::out|ios::trunc);
	data << "name=someone" << endl;
	copyFile("data.txt", "data.dat");
    return 0;
}


关于这代码我有一个问题:在copyFile函数中,文件是以二进制的方式打开并且写入的,但是我将data.dat文件改成txt后缀发现内容还是十进制数据,我想让文件数据打开的时候是一堆二进制的数据应该怎么做呢?

正在回答 回答被采纳积分+3

1回答

quickzhao 2020-06-01 22:22:25

和程序没有关系,你想想你用什么程序打开文件的,它用什么方式解析的。

0 回复 有任何疑惑可以回复我~
  • 提问者 kitakaze #1
    我是用的记事本打开的……如果我要看二进制的文件,我应该用什么格式打开解析呢?
    回复 有任何疑惑可以回复我~ 2020-06-01 22:26:11
  • quickzhao 回复 提问者 kitakaze #2
    用VS就可以,课上有讲过,好好看下视频。
    回复 有任何疑惑可以回复我~ 2020-06-01 22:27:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信