File Open
FILE *fp;
fp = fopen("FileName" , "Mode");
/* 失敗 return NULL */
Mode
w ... 只可寫入,覆寫
r ... 只可讀取
a ... 只可附加資料在此檔之後
b ... 只可讀取 binary 類型 file
r+ ... 可讀取與寫入
w+ ... 可讀取、覆寫
a+ ... 可讀取、附加資料在此檔之後
/* 以下成功 return 0 ,失敗 return EOF 即 -1 */
File Close
fclose(fp);
fgetc、fputc
File *fp2 = fopen("FileName2.txt","w");
int c;
while ( (c = fgetc(fp /* stdin */)) != EOF) /* 讀取一個字元並傳回 */
fputc(c, fp2 /* stdout */); /* 將字元 c 寫入檔案 */
fscanf、fprintf
fscanf(FILE *stream, const char *format, ...);
/* 用法同 scanf(),但讀取的資料改成來自 stream */
fprintf(FILE *stream, const char *format, ...);
/* 用法同 printf(),但寫入的資料改成寫到 stream */
ex:
fscanf(stdin,"%d",fp); /* 讀 stdin 寫 fp */
fprintf(fp,"%d",stdout); /* 讀 stdout 寫 fp */
/* 以下傳回所讀資料的筆數,若失敗傳回值為 0 */
fread、fwrite
char buf[128];
while ( (size = fread(buf, sizeof(char), sizeof(buf), fp_in) ))
fwrite(buf, sizeof(char), size , fp_out) ;
/* 從檔案 fp_in 讀取資料,一次讀取資料大小為 sizeof(char) 的物件
sizeof(buf) 個,並且將讀到的資料存放到 buf 這個暫存區,將 buf
所存的資料大小為 sizeof(char) 的物件 size 個,寫入檔案 fp_out */
fgets、fputs
char s[128]
fgets(s, n, fp);
/* 由 fp 讀入 n-1 個字元, 儲存到 s 的位址,正
確 return *s , 錯誤或檔案結束 return NULL */
fputs(s, fp);
/* fputs() 將字串輸出至 fp 成功 return
最後一個輸出的字元, 否則 return EOF */
No comments:
Post a Comment