【例3.1】編寫文字檔案複製程式,命令列格式為:mycopy filename1 filename2。
題目分析
每個c語言程式必須定義乙個main函式作為程式的入口。程式啟動從main函式開始執行,main函式返回時程式終止,若main函式末尾沒有返回語句,則預設執行return 0語句。
標準c語言的main函式有兩種形式:接受0個引數的int main(void),即int main();接受2個引數的int main(int argc, char *ar**)。對於後者,形參argc表示傳遞給程式的引數個數;形參ar**是指標陣列,其每個指標分別指向傳遞給程式的字串引數,第乙個字串ar**[0]是程式的名稱。
檔案的開啟和關閉可呼叫fopen和fclose函式。檔案的讀取和寫入可通過三種方式實現:1)fgetc和fputc函式配合,每次讀寫乙個字元,見參考程式mycopyv1.c;2)fscanf和fprintf函式配合,每次讀寫乙個字元,見參考程式mycopyv2.c;3)fread和fwrite函式配合,每次讀寫bufsize個字元,見參考程式mycopyv3.c。方式3)通過增設緩衝區buffer[bufsize],減少i/o操作的次數,提高程式執行速度,可用於讀寫量較大的程式。
檢測到異常時,用exit標準庫函式退出。void exit(int status) 函式可正常終止乙個程式並執行清理操作,形參status值為0表示程式成功退出,非零值可表示各類異常終止。從main函式通過return語句返回乙個整數值相當於用這個整數值呼叫exit函式。exit函式在標頭檔案stdlib.h中宣告。
參考程式
/*
* 檔名: mycopyv1.c
* 描述: 編寫檔案複製命令列程式,命令列格式為:mycopy filename1 filename2
*/ #include #include int main(int argc, char *ar**)
/* 開啟檔案 */
if ((fpsrc = fopen(ar**[1], "r")) == null)
if ((fpdes = fopen(ar**[2], "w")) == null)
/* 複製檔案 */
while ((ch = fgetc(fpsrc)) != eof)
/* 關閉檔案 */
fclose(fpsrc);
fclose(fpdes); }/*
* 檔名: mycopyv2.c
* 描述: 編寫檔案複製命令列程式,命令列格式為:mycopy filename1 filename2
*/ #include #include int main(int argc, char *ar**)
/* 開啟檔案 */
if ((fpsrc = fopen(ar**[1], "r")) == null)
if ((fpdes = fopen(ar**[2], "w")) == null)
/* 複製檔案 */
while (fscanf(fpsrc, "%c", &ch) != eof)
/* 關閉檔案 */
fclose(fpsrc);
fclose(fpdes); }/*
* 檔名: mycopyv3.c
* 描述: 編寫檔案複製命令列程式,命令列格式為:mycopy filename1 filename2
*/ #include #include #define bufsize 1024
int main(int argc, char *ar**)
/* 開啟檔案 */
if ((fpsrc = fopen(ar**[1], "r")) == null)
if ((fpdes = fopen(ar**[2], "w")) == null)
/* 複製檔案 */
while ((in = fread(buffer, 1, bufsize, fpsrc)) > 0)
}/* 關閉檔案 */
fclose(fpsrc);
fclose(fpdes);
}
《C語言課程設計》一3 2 檔案比較
例3.2 列印出兩個文字檔案第乙個不相同的行 每行字元數不多於80 命令列格式為 filecmp filename1 filename2。題目分析 檔案的按行讀取可呼叫fgets標準庫函式。比較字串可呼叫strcmp或strncmp標準庫函式。自定義函式filecomp用來比較不同行。當找到第乙個不...
C語言課程設計 檔案基本操作2
include include include fputc 不在字元後面新增換行 fgetc 不在字元後面新增換行,不管這個字元後面是不是換行,它只讀取乙個字元 fputs 不在字元後面新增換行 fgets 讀取檔案一行內容,行尾無換行則無換行,有換行讀取換行 一般情況下向檔案中寫資料都在行末新增乙...
C語言課程設計 檔案基本操作4
隨機讀寫 通過操作檔案的位置指標移動到不同的位置進行檔案的讀寫叫隨機讀寫 用rewind fp 使檔案的位置指標移動到檔案開始的位置 無返回值 用fseek fp,偏移,位置指標 偏移是long型別 位置指標 seek set 檔案開頭 0 seek cur 當前位置 1 seek end 檔案結尾...