计算机程序 cp,计算机程序设计xjtucppIPDP (91).pdf

本文详细讲解了如何使用C++通过二进制模式复制MP3文件,涉及文件打开方式、读写流程、错误处理和文件关闭。通过实例代码演示了从原始文件逐字节读取并写入目标文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1

二进制文件与输入输出-例题

复制MP3二进制文件

2

1.题目内容与要求

 复制一个MP3二进制文件到另一个文件中。

3

2. 算法分析

①输入原始文件和目标文件名;

②分别按照读方式打开原始文件,按照写方式打开目

标文件;

③循环每次读取原始文件256字节,如果文件结尾则

转⑤;

④将实际读取的字节写入目标文件之中,转③ ;

⑤关闭原始文件和目标文件。

4

3.编程指导

二进制文件打开方式为:ios::binary

ofstream fout(szDestFile, ios::binary); // 写打开

ifstream fin(szOrigFile, ios::binary); // 读打开

定位文件开始:fin.seekg(0L,ios::beg);

读文件内容:fin.read(szBuf, sizeof(char) * 256)

实际读文件的内容长度:int length=fin.gcount();

写文件内容:fout.write(szBuf, length);

读写文件过程中错误判断:if (fout.bad())

文件结尾判断:while(!fin.eof())

关闭文件对象:fout.close(); // 关闭目标文件

fin.close(); // 关闭原始文件

5

4.二进制文件复制模块程序代码 (1)

bool mp3cpy(const char * szDestFile, const char * szOrigFile){

ofstream fout(szDestFile, ios::binary); // 以二进制方式打开目标文件

ifstream fin(szOrigFile, ios::binary); // 以二进制方式打开原始文件

bool bRet = true;

if (fin.bad()){ // 原始文件出错

bRet = false;

}

6

二进制文件复制模块程序代码 (2)

else{

fin.seekg(0L,ios::beg); // 定位原始文件开始处

while(!fin.eof()){ // 原始文件未结尾

char szBuf[256] = {0};

fin.read(szBuf, sizeof(char) * 256); // 每次读取原始文件最多256字节

int length=fin.gcount(); // 实际读取的字节数

if (fout.bad()){ // 目标文件出错

bRet = false;

break;

}

fout.write(szBuf, length); // 每次写入目标文件length个字节

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值