C++ 文件的拷貝

/**
 文件的復(fù)制
 */
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
 int main(){
     string filePath = "/Users/aaa/Documents/C++File/a.jpg";
    string copyFilePath = "/Users/aaa/Documents/C++File/a_copy.jpg";
    
     FILE* file = fopen(filePath.data(),"rb");
     if(!file){
         printf("文件不存在:%s\n",filePath.data());
         exit(0);
     }
     FILE* fileCopy = fopen(copyFilePath.data(), "wb");
     
     //方式一:單個字節(jié)拷貝,文本和二進(jìn)制文件都可以拷貝(但是效率低)
//     int buff = 0;
//     while(buff!=-1) {
//         buff = fgetc(file);
//         fputc(buff,fileCopy);
//     }
     
     //方式二:這種方式拷貝文本沒有問題,拷貝二進(jìn)制文件會出現(xiàn)問題(目前只測試了圖片的拷貝)
//     char buff[1024];
//     while (fgets(buff, 1024, file)) {
//         fputs(buff, fileCopy);
//     }
     
     //方式三:可以拷貝文本或者二進(jìn)制文件(指圖片迹蛤、音視頻文件)
     
     int buff[1024];
     int len;
     while ((len = fread(buff, sizeof(int), sizeof(buff)/sizeof(int) , file)) != 0) {
         fwrite(buff, sizeof(int) , len, fileCopy);
     }
     
   
     printf("拷貝完成\n");
     fclose(file);
     fclose(fileCopy);
     
    return 0;
}

方式一 : 使用 fgetc() 和 fputc() 函數(shù)

這個兩個函數(shù)都是單個字節(jié)讀取和寫入,雖然可以拷貝 文本文件二進(jìn)制文件(指音視頻和圖片文件), 但是效率會比較慢

方式二: 使用 fgets() 與 fputs() 函數(shù)

這種方式只能拷貝文本文件,不能拷貝圖片音視頻文件

方式三: 使用 fread() 和 fwrite() 函數(shù)

使用這兩個函數(shù)都可以復(fù)制,沒有文件類型的限制

  • fread() 函數(shù):
    參數(shù)1: 容器/緩存區(qū)
    參數(shù)2:每次偏移多少個字節(jié)
    參數(shù)3: 容器/緩存區(qū) 的大小
    參數(shù)4: 需要讀取的 文件指針變量

  • fwrite() 函數(shù)
    參數(shù)1: 容器/緩存區(qū) 里面存放著讀取的內(nèi)容
    參數(shù)2: 偏移量,和讀取的時候保持一致
    參數(shù)3: 讀取時的長度
    參數(shù)4: 拷貝文件的指針變量

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市框产,隨后出現(xiàn)的幾起案子展东,更是在濱河造成了極大的恐慌蛉迹,老刑警劉巖稠诲,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舵匾,死亡現(xiàn)場離奇詭異诬乞,居然都是意外死亡册赛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門震嫉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來森瘪,“玉大人,你說我怎么就攤上這事票堵《蟛牵” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵换衬,是天一觀的道長痰驱。 經(jīng)常有香客問我证芭,道長,這世上最難降的妖魔是什么担映? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任废士,我火速辦了婚禮,結(jié)果婚禮上蝇完,老公的妹妹穿的比我還像新娘官硝。我一直安慰自己,他們只是感情好短蜕,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布氢架。 她就那樣靜靜地躺著,像睡著了一般朋魔。 火紅的嫁衣襯著肌膚如雪岖研。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天警检,我揣著相機(jī)與錄音孙援,去河邊找鬼。 笑死扇雕,一個胖子當(dāng)著我的面吹牛拓售,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播镶奉,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼础淤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哨苛?” 一聲冷哼從身側(cè)響起鸽凶,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎移国,沒想到半個月后吱瘩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡迹缀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年使碾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祝懂。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡票摇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出砚蓬,到底是詐尸還是另有隱情矢门,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站祟剔,受9級特大地震影響隔躲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜物延,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一宣旱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叛薯,春花似錦浑吟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抖拴,卻和暖如春燎字,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背城舞。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工轩触, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人家夺。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像伐弹,于是被迫代替她去往敵國和親拉馋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容