#include <iostream>
#include "Complex.h"
#include <string>
#include <fstream>
#include <limits>
using namespace std;
static const int bufferLen = 2048;
// 二進制文件的操作
bool CopyFile(const string& src, const string& dest) {// 引用是爲了避免創建副本,提高性能
// 打開源文件和目標文件
// 源文件採用二進制讀的方式打開
// 目標文件採用二進制寫的方式打開
ifstream in(src.c_str(), ios::in | ios::binary);
ofstream out(dest.c_str(), ios::out | ios::binary | ios::trunc);
// 判斷文件打開是否成功, 失敗返回false
if (!in || !out) {
return false;
}
// 從源文件中讀取數據,寫到目標文件中
// 通過讀取源文件的EOF來判斷我們讀寫的操作是否結束。
char temp[bufferLen];
while (!in.eof()) {
in.read(temp, bufferLen);
streamsize count = in.gcount();
// auto count = in.gcount();
out.write(temp, count);
}
// 關閉我們的源文件和目標文件
in.close();
out.close();
return true;
}
該代碼是簡單的複製Clion某個工程下的mp3文件拷貝爲另一個mp3文件。
但是運行後發現失敗:
並且也沒看見生成的文件。
在 Clion
中,cpp
源文件經編譯後生成可執行文件,放在 cmake-build-debug
目錄下,也就是最終的執行目錄,所以文件相對路徑應該是 ../
或者使用文件的絕對路徑也是可以的。
當然,如果相對路徑或絕對路徑太長也不爽,
可以這樣設置:
CLion 在Edit Configurations
, 選擇對應的項目, 然後在Working dictionary
裏選擇相應的程序目錄
選擇爲當前項目就行了。