SOGO論壇
標題:
檔案指摽
[列印本頁]
作者:
108
時間:
2012-7-23 08:32:08
標題:
檔案指摽
雖然 我們可以利用 printf、 scanf、 getchar、 putchar 等指令來執行 標準檔 stdin 與 stdout 的輸入與輸出 指令,當 輸入資料存於一檔案時, 我們 亦可 利用 輸入轉向 的方式以 scanf 及 getchar 的指令來輸入。
我們可以利用 檔案指標 方式 來達到 更有彈性的做法。其方法如下:
於 中 含有 檔案指標 的 資料結構 的設定。因此, 可以宣告檔案指標如下:
FILE *fp;
欲使用一檔案 必須 呼叫 fopen, 使用結束時 必須呼叫 fclose。函數 fopen() 的宣告如下:
FILE *fopen(char *name, char *mode);
其中 name 為欲使用 檔案的 路徑及名稱, mode 為檔案 使用的方式,當 mode = "r" 時, 表示 該檔 僅做輸入用; mode 為 "w" 時, 表示輸出用; mode 為 "a" 時, 則 表示 可附加在檔案後。
其相關 輸入輸出 函數的 宣告如下:
int getc(FILE *fp)
int putc(int c, FILE *fp)
int fscanf(FILE *fp, char *format,...)
int fprintf(FILE *fp, char *format,...)
這些 函數 (亦可能為 macro 指令) 類似 getchar、 putchar、 scanf 與 printf,只不過多了一個 FILE* 的引數。
檔案結尾的 函數 fclose 其宣告為
int fclose(FILE *fp)
例 3: 試設計一程式 如同 1.8 節的程式, 來 copy 一檔案 file1.txt 至另一檔案。
#include <stdio.h>
void main()
{ char c;
FILE *fpin, *fpout;
fpin = fopen("file1.txt", "r");
if( !fpin )
{
printf("The file: file1.txt is not found!\n");
return;
}
fpout = fopen("file2.txt", "w");
if( !fpout )
{
printf("The file: file2.txt is not found, or no available space!\n");
return;
}
while( (c=getc(fpin)) != EOF)
putc(c, fpout);
fclose(fpin);
fclose(fpout);
}
歡迎光臨 SOGO論壇 (https://oursogo.com/)
Powered by OURSOGO.COM