⑴ 怎樣用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語言將文件復制到自己想要的文件夾
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語言中怎樣實現文件的復制
可以利用系統命令行來解決這個問題,程序如下
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
system(" d:\\file1.txt e:\\file1.txt");
return 0;
}
根據實際需要更改路徑和文件名即可
⑷ 有個關於C語言的題 就是在windows中用命令行完成文件的復制(從一個文件復制到另一個)。下面是我寫的
注意命令行下的格式
"c:\test86" "1.txt" "2.txt"
還有最後你的文件沒有關閉
⑸ 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 以讀方式打開文件;2 將文件讀到內存;3 關閉文件;4 以寫方式打開文件;5 將原始數據寫迴文件,寫的時候,跳過要刪除的字元串。第二種:當文件比較大時,全部讀入內存會有可能放不下。這時可以按照以下步驟:1 將原始文件備份成備份文件,可以通過或者系統復制命令實現;2 以寫方式打開原文件;3 以讀方式打開備份文件;4 依次讀備份文件,並寫入原文件,讀的時候跳過要刪除的部分。可以讀後拋棄,也可以使用fseek函數實現;5 關閉兩個文件;6 刪除備份文件。
⑺ 如何在C語言中實現DOS命令中有空格的COPY命令
和system()函數根本就沒有任何關系!因為"\"和右邊的一個字元組成轉義,當需要使用"\"本身時,再加一個"\"就行了。如下:char
files[]="
d:\\Progra~1\\1.txt
f:\\"
⑻ 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語言改錯:實現文件的復制,源文件名和目標文件名由命令行參數指定.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *srcFile, *destFile;
int ch;
/*********Found************/
if (argc != 3)
{
printf("輸入參數有誤.\n");
exit(1);
}
/*********Found************/
if ((srcFile = fopen(argv[1], "rb")) == NULL)
{
printf("無法打開源文件 %s\n", argv[1]);
exit(2);
}
if ((destFile = fopen(argv[2], "wb")) == NULL)
{
fclose(srcFile);
printf("無法打開目標文件 %s\n", argv[2]);
exit(3);
}
while ((ch = fgetc(srcFile)) != EOF)
{
fputc(ch, destFile);
}
printf("succeful to a file!\n");
fclose(srcFile);
fclose(destFile);
return 0;
}
⑽ C語言文件復制問題
走到else流程裡面了,運行的命令行必須要有兩個參數