‘壹’ c语言编程实现:将一个文件的内容复制到另一个文件。(详细点的,考试用。)谢谢!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#ifdefBUFSIZ
#undefBUFSIZ
#defineBUFSIZ4096
#endif
/*
使用格式:mcpy源文件目标文件
且目标文件和源文件不能一样,否则会清空文件内容,
源文件必须存在,目标文件可存在也可不存在,如果存在,内容会被覆盖掉。
*/
intmain(intargc,char**argv)
{
charbuf[BUFSIZ];
intmsglen;
if(argc!=3||strcmp(argv[1],argv[2])==0)
/*argc:命令行模式下,输入的参数数目。
argv:第一个参数的首地址。*/
{
fprintf(stderr,"******************************** ");
fprintf(stderr,"Pleaseusage:%ssource_filedestination_file Andsource__file ",argv[0]);
fprintf(stderr,"******************************** ");
exit(0);
}
FILE*fp_src,*fp_des;
if((fp_src=fopen(argv[1],"r"))==NULL)
/*为空,则打开失败*/
{
fprintf(stderr,"open%sfailed! ",argv[1]);
exit(1);
}
if((fp_des=fopen(argv[2],"w"))==NULL)
/*为空,则打开或创建失败*/
{
fprintf(stderr,"open/create%sfailed! ",argv[2]);
exit(2);
}
while(fgets(buf,BUFSIZ,fp_src)!=NULL)
/*从源文件读,读失败或到达文件尾部时,返回NULL*/
{
if(fputs(buf,fp_des)==EOF)
/*写入目标文件,写入失败时,返回EOF;若成功返回写入的字节数*/
{
fprintf(stderr,"%sto%sfailed! ",argv[1],argv[2]);
exit(3);
}
}
printf("%sto%ssuccessful! ",argv[1],argv[2]);
return0;
}
‘贰’ 用C语言实现文件拷贝
两种方法:
1. 用c语言的文件操作:读出文件argv[1]的内容,再把读出的内容写入到文件argv[2]中
2. 使用函数system来执行dos中的文件拷贝命令
char command[100]=" ";
strcat(command, argv[1]);
strcat(command," ");
strcat(command,argv[2]);
system( command );
‘叁’ C语言编程 将一个文件复制为另一个文件
#include
int
main()
{
FILE
*one,
*two;
one
=
fopen("sfile.txt",
"r");
two
=
fopen("tfile.txt",
"w");
char
c;
while((c=fgetc(one))!=EOF)
fputc(c,two);
fflush(two);
fclose(one);
fclose(two);
return
0;
}
一个最简单的文件复制函数,功能很有限,要求源文件和目标文件在同一个目录下。。。。。。
‘肆’ c语言拷贝文件的代码
system(" D:\\a\\123.exe D:\\b\\123.exe");
用system 调DOS复制命令。单斜杠用双斜杠。
同名时,也可以用 *.*
system(" D:\\a\\123.exe D:\\b\\*.*");
---
文件读写方法复制,要用 "b" (二进制方法打开),一个字节一个字节读写并检查是否到了EOF,到了则关闭文件不再写。
‘伍’ c语言怎么复制整个文件夹
文件复制可以通过一个简单的IO读写完成,文件夹的话应该是要调用windows的API来创建一个文件夹后把再把文件复制过去。这个你要去查看windows的API了。
‘陆’ c语言怎么复制文件
BOOL
CopyFile(LPCTSTR
lpExistingFileName,LPCTSTR
lpNewFileName,BOOL
bFailIfExists
);
说明
复制文件。与vb的file命令相似
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数
类型及说明
lpExistingFileName
String,源文件名
lpNewFileName
String,目标文件名
bFailIfExists
Long,如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件被改写
‘柒’ C语言---如何复制任意文件
C语言复制文件主要由三种办法,你可以根据自己的知识选用一个
方法1)利用C语言的二进制读写函数
自己用fopen打开源文件和目标文件,然后用循环读写实现复制
方法2)利用操作系统的文件复制函数
例如Windows就有如下API函数可以复制文件
BOOL CopyFile(
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists // operation if file exists
);
第一个参数是用来存放当前要处理文件的路径。
第二个参数是用来存放用户指定的新路径。
第三个参数它是用来判断用户指定的新路径是否已经存在要存放的路径,如果为TRUE,则新路径中已经存在该文件了,该函数调用失败,否则就调用成功。
方法3:C语言调用操作系统的命令
首先#include<stdlib.h>
然后 程序中 调用 system(“这里写 的完整命令”);
‘捌’ C语言函数编写:文件复制
C语言实现一个简单的文件复制功能,Linux环境下。
思路步骤:(下代码最重要的逻辑步骤清晰)
第一步:打开源文件(要复制的文件),打开文件的方式以读的方式就可以了。
Linux C打开文件的库函数有:int open(const char *pathname,int flags),int open(const char *pathname,mode_t mode),以及 FILE*fopen(const char *path,const char *mode),FILE *fdopen(int fd,const char *mode),这几个函数,具体的使用方法就查看manual就可以了。
第二步:创建目标文件,所用的函数也是上面那几个。
第三步:读取文件。库函数有:size_t read(int fd,void *buf,size_t count),
size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream)
第三步:写入目标文件。用的库函数:size_t write(int fd,void *buf,size_t count),
size_t fwrite(void *ptr,size_t size,size_t nmemb,FILE*stream)
第四步:关闭文件。库函数:int fclose(FILE*fp) ,int close(int fd)
思路步骤就是这样子的了。下面是具体的代码实现。
#include
#include
#include
#include
#include
#include
int main(int argc,char *argv[])
{
int fd_source_file,fd__file;//用接受int open()函数返回的值
//FILE *fp_source_file,*fp__file;//如果用FILE *fopen()函数的话
int size_read,size_write;
char buf[1024];
char _file_name[50];
//检查参数的输入
if(argc<3)
{
printf("usage: ./a.out source_file_path _file_path\n");
exit(1);
}
//复制目标文件名
strcpy(_file_name,argv[2]);
//打开源文件
if( (fd_source_file=open(argv[1],O_RDONLY,00744))<0 )
{
perror("open source file error");
exit(1);
}
//创建目标文件
if( (fd__file=open(argv[1],O_CREAT|O_RDWR)) <0 )
{
perror("create file error");
exit(1);
}
do
{
//读取文件内容
if( (size_read=read(fd_source_file,buf,1024)) <0 )
{
perror("read source file error");
exit(1);
}
//写入目标文件
if( (size_write=write(fd__file,buf,sieze_read))<0 )
{
perror("wrire file error");
exit(1);
}
}while(size_read==1024)
return 0;
}
‘玖’ c语言复制文件
照着API文档一步步来 没问题的!
‘拾’ C语言复制文件
while以及后面这么写就好了
while( i < argc && (wbfp = fopen(argv[i],"wb"))!=NULL){
rewind(rbfp);
data(rbfp,wbfp);
fclose(wbfp);
i++;
}
fclose(rbfp);
// fclose(wbfp);
有3个问题
1.fclose(wbfp)写在循环外边不能达到关闭全部输出文件的目的
2.单用(wbfp = fopen(argv[i],"wb"))!=NULL 做循环条件会内存错误
3.源文件每次读取前要用rewind函数恢复指针,否则再读就是空文件了