1. 程式人生 > >文件讀寫函數

文件讀寫函數

文件結尾 fgetc seek cnblogs eof get close class 再次

字符讀寫函數: fgetc / fputc
字符串讀寫函數:fputs / fgets
格式化讀寫函數:fscanf / fprintf
二進制讀寫函數:fread / fwrite
其他相關函數:
檢測文件結尾函數feof
檢測文件讀寫出錯函數ferror
清除末尾標誌和出錯標誌函數clearerr
文件定位的函數fseek

字符讀寫函數fgetc和fputc

while( !feof( fp1 ) ){
         c = fgetc( fp1 );
         fputc(c, fp2);
       }

函數fputc( )
fputc(ch, fp);
把一個字符 ch 寫到 fp 所指示的磁盤文件上
返回值
-1 (EOF):寫文件失敗
ch:寫文件成功

函數fgetc( )
ch = fgetc( fp ) ;
從fp所指示的磁盤文件上讀入一個字符到ch

區分鍵盤字符輸入函數getchar( )

例題一

從鍵盤輸入10個字符,寫到文件 f2.txt 中,再重新讀出,並在屏幕上顯示驗證。

鍵盤輸入 ? 寫入文件 f2.txt ? 讀文件 ? 屏幕顯示的過程
鍵盤輸入 ? f2.txt時,文件按寫方式打開。
f2.txt ? 顯示到屏幕時,文件按讀方式打開。
讀和寫是兩種不同的操作, f2.txt 分別被打開和關閉兩次。

int main(void)
{   int i; char ch; FILE *fp;
    if((fp=fopen("f2.txt
","w")) == NULL){ /* 打開文件f2.txt */ printf("File open error!\n"); exit(0); } for(i = 0; i < 10; i++){ /* 寫文件10次 */ ch = getchar(); fputc(ch, fp) ; } if(fclose(fp)){ /* 關閉文件 */ printf("Can not close the file!\n" ); exit(0); }
if((fp=fopen("f2.txt","r")) == NULL){ /* 打開文件f2.txt */ printf("File open error!\n"); exit(0); } for(i = 0; i < 10; i++){ /* 讀文件10次 */ ch = fgetc(fp); putchar(ch); } if(fclose(fp)){ /* 再次關閉文件 */ printf("Can not close the file!\n"); exit(0); } return 0; }

文件讀寫函數