关于二进制文件操作问题
来源: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
和程序没有关系,你想想你用什么程序打开文件的,它用什么方式解析的。
022020-06-01
相似问题