利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。
时间: 2024-02-21 16:57:57 浏览: 111
文件拷贝程序
好的,以下是一个简单的实现文件拷贝的程序,可以通过命令行参数传入源文件名和目标文件名:
```cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[])
{
// 检查命令行参数
if (argc != 3) {
cerr << "参数错误!用法:" << argv[0] << " 源文件名 目标文件名" << endl;
exit(1);
}
// 打开源文件
ifstream in(argv[1], ios::binary);
if (!in) {
cerr << "无法打开源文件 " << argv[1] << endl;
exit(1);
}
// 打开目标文件
ofstream out(argv[2], ios::binary);
if (!out) {
cerr << "无法打开目标文件 " << argv[2] << endl;
exit(1);
}
// 读入并写出文件
char buf[1024];
while (in.read(buf, sizeof(buf))) {
out.write(buf, in.gcount());
}
// 处理最后不足一个缓冲区的数据
out.write(buf, in.gcount());
// 关闭文件
in.close();
out.close();
cout << "文件拷贝成功!" << endl;
return 0;
}
```
这个程序首先检查命令行参数是否正确,如果不正确则输出错误信息并退出程序。然后打开源文件和目标文件,并使用一个循环来读入和写出文件,每次读入一个缓冲区的数据并写出相同的数据,直到读到文件结尾。最后处理最后不足一个缓冲区的数据,关闭文件并输出拷贝成功的信息。
阅读全文