关于二进制文件操作问题

来源:8-12 二进制文件的操作

kitakaze

2020-06-01

// 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后缀发现内容还是十进制数据,我想让文件数据打开的时候是一堆二进制的数据应该怎么做呢?

写回答

1回答

quickzhao

2020-06-01

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

0
2
quickzhao
回复
kitakaze
用VS就可以,课上有讲过,好好看下视频。
2020-06-01
共2条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程