1樓:一騎當後
c語言中有很多對檔案進行操作的工具,可以利用fgetc()和fputc()來實現檔案的拷貝功能。
比如:目的:在/home/cosmos/c_code目錄下有乙個名為students.
txt的原始檔,想將其拷貝到目錄/home/cosmos/下,並命名為students_copy.txt。
**如下:
#include
int main(int argc, char *argv) //argc表示命令引數個數, argv表示引數名稱
fpdest = fopen(argv[2], "wb"); // //以寫入二進位制的方式開啟目標檔案
if(fpdest==null)
while((c=fgetc(fpsrc))!=eof)
fclose(fpsrc); //關閉檔案指標,釋放記憶體
fclose(fpdest);
return 0;
}//輸入命令 gcc copyfile.c -o copyfile 編譯程式原始檔得到可執行檔案copyfile
輸入執行命令./copfile /home/cosmos/c_code/students.txt /home/cosmos/students_copy.txt
然後開啟 students_copy.txt檢驗一下複製是否成功。
2樓:傲賈
出現stream!=null的原因是檔名過長,超出那陣列的大小!
3樓:匿名使用者
印象中這種錯誤應該屬於定義的指標f,y沒有做記憶體空間長度預分配,使用完畢後沒有釋放空間所致,詳細的已記不太清了,你可以看一下 中的malloc()及free()兩個函式,前乙個分配記憶體空間,後乙個釋放空間,配合使用。
n多年前用過,現在已經記不清了,看無人回答,憑映像提示一下,希望有所幫助。
4樓:
開啟檔案方式問題y = fopen(b,"r+");改為
y = fopen(b,"w+");
printf("複製檔案中");每迴圈一次都執行一次 會顯示很多 放在迴圈前面好些
5樓:匿名使用者
乍看沒什麼問題。。是不是檔案f、y還不存在?
6樓:青青小草
ch = fgetc(f);
while(ch!=eof)
ch定義為int試試
7樓:匿名使用者
你的檔案需要 ctrl+z或回車。
c語言複製檔案,c語言複製檔案
照著api文件一步步來 沒問題的!include include int main fseek fp,0l,seek end len ftell fp a char malloc sizeof char len fseek fp,0l,seek set fread a,len,1,fp free f...
c語言,如何複製檔案,C語言,如何複製檔案
呼叫系統函式是以字串方式儲存的,而非二進位制。因為dos linux命令列下二進位制編碼無意義 所以system 一定不滿足你的要求。可以使用c的io函式達到你想要的目的 以下是簡要說明,不考慮出錯等問題 所有io函式包含在stdio.h中 linuxc是,turboc應該也是吧,忘了 1 定義原始...
如何實現c語言中複製檔案的程式,如何實現C語言中複製檔案的程式
風若遠去何人留 1 以唯讀方式開啟第乙個檔案 2 以寫方式開啟第二個檔案 3 迴圈讀取字元,並寫入第二個檔案。直到遇到eof結束。4 關閉檔案。include int main 要是只複製乙個檔案的話,流程如下 1.開啟讀檔案,準備寫檔案 2.讀檔案到緩衝 3.將緩衝內容寫到寫檔案 4.如果所有內容...
c語言問題字串的複製,用C語言實現字串拷貝函式有幾種方式
目標字串的長度 源字串的長度,否則會出不可預知的錯誤。這句話沒錯。你這第乙個程式執行應該是沒問題的,但是存在隱患。char c 20 b c 的意思就是把有20個字元的陣列首位址賦給了指標b 這樣b就有了指向的記憶體 而直接賦值 則只有首位址 你可以試 把陣列c賦值後 可以輸出20個不同的位址而 指...
c語言鍊錶檔案讀取問題,c語言鍊錶檔案讀取問題
問題就在於你存這個結構體的時候,把struct std pnext也存進去了,但這個pnext下次讀出來的時候可能是乙個無效的位址,沒看到insert函式是如何實現的,是否對這個值進行了處理,否則用這個指標做為鏈的話肯定出錯。p0指向鍊錶中最後乙個節點,讀到檔案結尾時,feof返回1,於是執行if語...