導航:首頁 > 文件教程 > c文件copy

c文件copy

發布時間:2023-07-18 00:37:12

『壹』 用C語言實現文件拷貝

#include<stdio.h>
#include<stdlib.h>

int main(int argc, char *argv[])
{
// char s1[100],s2[100];
FILE *p1,*p2;
char ch;
if(argc!=3)
{
printf("ming ling cuowu!");
exit(1);
}
if(argc==3)
{
p1=fopen(argv[1],"r");
p2=fopen(argv[2],"w");
if(p1==NULL||p2==NULL)
{
printf("wenjian bu cunzai!");
exit(1);
}
ch=fgetc(p1);
while(ch!=EOF)
{
fputc(ch,p2);
ch=fgetc(p1);
}
printf("kaobei chenggong!");
}
return 0;
}

要用命令行的模式執行程序
可以回加我網路

『貳』 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語言將文件復制另外的文件夾

有兩種方式可以實現復制:
一、自行編寫函數,實現復制。
演算法流程如下:
1
以讀的方式打開源文件,以寫的方式打開目標文件;
2
每次讀一個位元組,並寫到目標文件中,直到達到文件結尾為止;
3
關閉兩個文件。
二、調用系統命令。
stdlib.h中的system函數,可以執行系統命令行支持的命令。
int
system(char
*cmd);
調用時就是執行cmd中的指令。
1
對於windows,就是執行dos命令,可以調用
system("
/Y
src_file
target_dir");
其中src_file為源文件,而target_dir就是目標文件夾。
2
對於Linux,需要執行shell命令cp,如下
system("cp
src_file
target_dir");

『肆』 C語言文件復制

不應對非文本文件使用fgetc等易受干擾的函數,建議用fread,fwrite讀寫二進制文件

#include "stdio.h"

/* 保護硬碟,絕對不要一個位元組一個位元組復制 */
#define SIZEOFBUFFER 256*1024L /* 緩沖區大小,默認為256KB */

long filesize(FILE *stream)
{
long curpos, length;
curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
return length;
}

int file(const char* src,const char* dest)
{
FILE *fp1,*fp2;
int fsize,factread;
static unsigned char buffer[SIZEOFBUFFER];

fp1=fopen(src,"rb");
fp2=fopen(dest,"wb+");
if (!fp1 || !fp2) return 0;
for (fsize=filesize(fp1);fsize>0;fsize-=SIZEOFBUFFER)
{
factread=fread(buffer,1,SIZEOFBUFFER,fp1);
fwrite(buffer,factread,1,fp2);
}
fclose(fp1);
fclose(fp2);
return 1;
}

int main()
{
file("file1.txt","file2.txt");
return 0;
}

『伍』 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語言 文件拷貝

#include <stdio.h>
main(){
FILE *FI, *FO;
char last=0,c;
FI=fopen("f.in","r");
FO=fopen(f.out","w");
while(! feof(FI)){
c=fgetchar(FI);
if (last!=32 && last!=9 || c!=32 && c!=9) fputchar(FO,c);
last=c;
}
fclose(FI);
fclose(FO);
}

『柒』 C語言,如何復制文件

調用系統函數是以字元串方式保存的,而非二進制。(因為dos\linux命令行下二進制編碼無專意義)
所以system()一定不滿足你的要屬求。

可以使用c的IO函數達到你想要的目的
以下是簡要說明,不考慮出錯等問題:
所有IO函數包含在stdio.h中(linuxC是,turboc應該也是吧,忘了)

1、定義源文件和目標文件指針FILE *fp_source,*fp_target

2、聲明一個程序內數據存放區如char buffer[100],或調用malloc函數

3、用fp_source = fopen()打開源文件文件

4、用fp_target = fopen()打開目標文件

5、
while(feof(fp_source) == 0)//利用循環復制直到源文件尾
{用fread()將源文件內容讀入程序buffer
用fwrite()將buffer內容寫入目標文件
}

6、別忘了close()關閉源\目標文件

7、各函數使用方法請自行查詢,不贅述。

沒有寫全源碼,但希望這條思路對你有幫助。

『捌』 如何用c語言將文件復制到自己想要的文件夾

C語言里的system("");函數可以執行命令行的幾乎所有指令,把命令行輸入的內容作為參數傳入回即可答。復制文件的話 應該是: 源文件 目的路徑。
例如命令行里的 c:\test.txt d:\text.txt,
也就是C語言里的:system(" c:\test.txt d:\text.txt");
或者這樣
char c[50] = " c:\test.txt d:\text.txt";
system(c);

『玖』 怎樣用C語言將文件復制另外的文件夾

有兩種方式可以實抄現復制:
一、自襲行編寫函數,實現復制。
演算法流程如下:
1
以讀的方式打開源文件,以寫的方式打開目標文件;
2
每次讀一個位元組,並寫到目標文件中,直到達到文件結尾為止;
3
關閉兩個文件。
二、調用系統命令。
stdlib.h中的system函數,可以執行系統命令行支持的命令。
int
system(char
*cmd);
調用時就是執行cmd中的指令。
1
對於windows,就是執行dos命令,可以調用
system("
/Y
src_file
target_dir");
其中src_file為源文件,而target_dir就是目標文件夾。
2
對於Linux,需要執行shell命令cp,如下
system("cp
src_file
target_dir");

閱讀全文

與c文件copy相關的資料

熱點內容
一鍵還原的文件是什麼格式 瀏覽:581
女漢子微信名霸氣十足 瀏覽:65
win10手機藍屏修復 瀏覽:419
windows2008激活工具 瀏覽:259
g71的編程應注意什麼 瀏覽:572
文件路徑不符合是什麼意思 瀏覽:543
qq如何換綁微信綁定 瀏覽:67
文件包下載的安裝包在哪裡 瀏覽:811
90版本升級不送 瀏覽:186
工具箱英文 瀏覽:382
南翔嘉定編程課哪裡好 瀏覽:853
win10改變文件格式 瀏覽:475
linux中的物理地址和虛擬地址 瀏覽:493
有哪些app可以接游戲訂單 瀏覽:472
蘋果硬碟數據恢復要多少錢 瀏覽:394
js綁定下拉框資料庫數據 瀏覽:448
cad文件怎麼復制到另一個文件里邊 瀏覽:858
dxp鑽孔文件 瀏覽:631
iphone大悅城換機 瀏覽:538
找結婚對象上什麼網站 瀏覽:974

友情鏈接