2012-04-03 99 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

相关问题