文件複製命令CP 的簡單實現

文件複製在程序中經常會用到,不過最主要的是對文件的操作。
/*
    本程序所實現的功能爲 【**.exe srcFile  desFile】 ,就是將srcFile 拷貝一份到desfile,
    所以在運行程序時必須在後面添加兩個參數,第一個是已經存在的文件的路徑,另一個是需要
    複製到的路徑。
    本程序主要是利用文件操作函數中的 fgetc() 函數 與 fputc() 函數。

    函數說明:
        fgetc(FILE *fp):
            從流中讀取一個字符,同時沒取完一個字符fp 指針會自動指向下一個字符。
            當讀取錯誤時會返回EOF。可以通過返回值判斷當前文件是否讀完。
        fputc(char ch, FILE *fp):
            向流中輸入一個字符,與fgetc 相似,在每寫入一個後fp 指向下一個,等待繼續輸入,或者
            流關閉

    在函數中我們還需要用到 fopen(char * fileName, char *type),第一個參數就是我們所需要的文件路徑,
    第二個參數就是讀取的方式。讀取方式如下:
        r:只讀方式打開一個文本,只允許讀數據
        w:只寫打開或建立一個文本文件,只允許寫數據
        a:追加打開一個文本文件,並在文件末尾寫數據
        rb:只讀打開一個二進制文件,只讀
        wb:只寫打開,或建立一個二進制文件,只允許寫數據
        ab:追加打開一個二進制文件,並在文件末尾寫數據
        r+:讀寫打開一個文本文件,允許寫和讀
        w+:讀寫打開或建立一個文本文件,可以讀和寫
        a+:讀寫打開一個文本文件,允許讀,或在文件末尾追加數據
        rb+:讀寫打開一個二進制文件,允許讀和寫
        wb+:讀寫打開或建立一個二進制文件,允許讀和寫
        ab+:讀寫打開一個二進制文件,允許讀,或在文件末尾追加數據
    還有第二個函數fclose(FILE *fp) ,也就是關閉文件流,這個很重要

*/

#include<stdio.h>// 在這個頭文件中包含了我們所需要的各個文件操作函數
int main(int argc, char* argv[])
{
    FILE *srcFile , *desFile;//定義兩個文件指針
    if(argc != 3)// 判斷參數輸入是否滿足要求
    {
        printf("Please input <%s srcFile desFile>",argv[0]);// 這個地方提示用戶程序執行的正確方式
        return 0;
    }
    srcFile = fopen(argv[1],"rb");//以讀取二進制的方式打開源文件
    if(srcFile == NULL)
    {
        printf("Source file open failure!!");
        return 0;
    }

    desFile = fopen(argv[2],"wb");//以寫入二進制方式打開目標文件
    if(desFile == NULL)
    {
        printf("Destination file open failure!!");
        return 0;
    }
      /* start copy */
    while(!feof(srcFile))// 判斷當前指針的指向是否爲EOF
    {
        putc(getc(srcFile),desFile);
    }

    fclose(srcFile);
    fclose(desFile);

    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章