2012-04-03 58 views
-4

我想將文件從一個位置複製到使用C程序的不同位置,任何一個可以給我一個提示,我該怎麼辦呢?C程序將文件複製到一個位置

我成爲這個,我不知道,即時通訊使用代碼塊編譯和編寫程序。

// Please help me out... I have only included some files such as: 
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#include <dir.h> 
#include <dos.h> 
#include <io.h> 
int main() 
{ 

} 

幫幫我。

+0

最終你可以以某種方式調用unix'cp'命令... – evotopid 2012-04-03 15:40:27

+1

你想使用系統調用嗎?如果不是,您可以打開要複製的文件,在所需的目錄中用相同的名稱創建一個新文件,讀取第一個文件中的所有數據並將其寫入第二個文件。這個http://www.cplusplus.com/reference/clibrary/cstdio/FILE/顯示瞭如何使用'stdout'來完成,你必須改變到另一個文件。 – twain249 2012-04-03 15:44:55

+0

也許在Windows上,(dos.h)。除非你仍然在Windows 95上,否則轉儲該dos.h幷包含windows.h。調用copyfile()API。 – 2012-04-03 15:45:43

回答

1

便攜方式:

  1. 打開源文件進行讀取
  2. 創建從源中讀取目標文件
  3. 寫入到目標

的平臺 - 具體方法:

  • 找出如何調用平臺內置的複製功能(例如。在* NIX上執行/bin/cp
1

那麼你可以按照任何路線。您沒有告訴我們您是否受限於Standard-C。實際上你包含一個表示你在Windows上的頭文件。

富<輸入>輸出

另外:對於此類職位的,你只需調用這樣的程序使用Windows API在這種情況下 CopyFile

1
#include <stdio.h> 

int main(int argc, char **argv) 
{ 
    char buffer[1024]; 
    size_t num; 

    while ((num = fread(buffer, 1, sizeof(buffer), stdin)) > 0) 
     fwrite(buffer, 1, num, stdout); 
} 

現在,您可以複製一個文件,您可以將輸入和輸出文件放在命令行上並使用fopen()打開它們。

1

您將需要fopen()兩個文件一個用於讀取,一個用於寫入,然後創建一個緩衝區來存儲臨時字節。那麼你將需要從一個文件讀取(),並將write()寫入另一個文件。 不要忘記當你完成關閉()文件。

實施例的僞代碼:

fopen(path, mode); 
char buff[256]; 
//This should be in a loop until EOF: 
{ 
    read(file, buffer, (buffer size)); 
    write(file, buffer, (buffer size)); 
} 
close(file); 

即事物的要旨。如果您需要更多的幫助,我建議使用手冊頁來弄清楚這些功能是如何工作的。 「man fopen()」。因爲它是(幾乎)其他地方

3

文件處理是在代碼::塊相同。

首先,創建一個文件流:

FILE *fp;

接下來,打開寫( 「W」),並給予完整路徑。

myf= fopen ("c:\\windows\\name.bat", "w");>

然後,做你的事:閱讀()/寫()由drew12或fprintf中()或任何捕獲你的想象的建議。此後,關閉它關閉:

fclose(*fp);

我敢肯定,你可以在任何C基準得到這一切,如this

+0

感謝您的想法! – 2012-04-03 19:38:31

相關問題