C++将一个文件复制到另一个文件夹内
时间: 2023-09-01 20:07:44 浏览: 97
可以使用C++的文件流来实现将一个文件复制到另一个文件夹内的操作。具体步骤如下:
1. 打开源文件并检查是否成功打开。
```c++
ifstream srcFile("path/to/source/file", ios::binary);
if(!srcFile.is_open()) {
cout << "Failed to open source file!" << endl;
return -1;
}
```
2. 创建目标文件并检查是否成功创建。
```c++
ofstream dstFile("path/to/destination/file", ios::binary | ios::trunc);
if(!dstFile.is_open()) {
cout << "Failed to create destination file!" << endl;
return -1;
}
```
其中,`ios::binary`表示以二进制形式读写文件,`ios::trunc`表示如果目标文件已经存在,则清空目标文件。
3. 读取源文件中的数据并写入目标文件。
```c++
char buffer[1024];
while(!srcFile.eof()) {
srcFile.read(buffer, sizeof(buffer));
dstFile.write(buffer, srcFile.gcount());
}
```
其中,`gcount()`函数返回上一次读取操作读取的字节数。
4. 关闭文件流。
```c++
srcFile.close();
dstFile.close();
```
完整代码如下:
```c++
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream srcFile("path/to/source/file", ios::binary);
if(!srcFile.is_open()) {
cout << "Failed to open source file!" << endl;
return -1;
}
ofstream dstFile("path/to/destination/file", ios::binary | ios::trunc);
if(!dstFile.is_open()) {
cout << "Failed to create destination file!" << endl;
return -1;
}
char buffer[1024];
while(!srcFile.eof()) {
srcFile.read(buffer, sizeof(buffer));
dstFile.write(buffer, srcFile.gcount());
}
srcFile.close();
dstFile.close();
return 0;
}
```
阅读全文
相关推荐
















