C語言檔案輸入輸出函式筆記

2021-12-29 23:05:40 字數 1523 閱讀 5387

發現最近寫的程式總是要用到檔案操作,所以把c語言與檔案輸入輸出有關的函式複習一下。

c語言是通過將乙個檔案型別指標與檔案關聯起來來對檔案進行開啟、關閉、輸入、輸出。

檔案型別為file(實際上是乙個結構體)。定義乙個檔案指標為file *fp;就可以將fp和某個檔案關聯起來進行操作了。例如要開啟乙個檔案:

file *fp;

fp=fopen("filename",「開啟方式」);//fopen的返回值為null或指向檔案的指標

或者直接file *fp=("filename","開啟方式");

如果要重定向只需將指標fp和另乙個檔案關聯。意思是可用乙個檔案指標操作多個檔案。

檔案使用完後要及時關閉。這是個好習慣。關閉函式為fclose(fp);這樣fp就不在和之前指向的檔案關聯了。

1.判斷檔案是否開啟成功: www.2cto.com

判斷檔案是否開啟成功可用fopen的返回值if((fp=fopen("filename","r"))==null)則開啟失敗。

2.判斷檔案是否結束:

判斷ascii檔案是否結束fgetc()會返回結束標誌eof(即-1)由於二進位制檔案資料會出現-1所以必須用函式feof(fp)判斷,feof(fp)==1則已結束。

3.單個字元的輸入輸出:fgetc()和fputc()

ch=fgetc(fp);fp為檔案指標,且fgetc()不會忽略空格和回車符,只能用於讀入字元。

相應的fputc(ch,fp);向檔案輸出字元時也不會忽略空格,回車符

因為fgetc()返回字元所以fgetc()和fputc()通常巢狀使用:fputc(fgetc(in),out)。

fputc()的返回值為輸入的字元或eof(-1)(失敗的情況下)

fgetc()的返回值為讀入的字元(包括檔案結束標誌eof(-1))

4.資料塊的輸入輸出:fread(buff,size,count,fp)和發fwrite(buffer,size,count,fp)

buffer是乙個指標,對於fread,它是讀入資料的存放位址,對於發fwrite它是要輸出資料的位址,

size是指要讀寫的位元組數,count是要進行讀寫多少個size位元組的資料項。

如果成功fread和fwrite都返回成功輸入和讀取的資料塊個數有可能比count小;

注意:fread引數buffer指向的空間必須大於或等於要讀入的資料塊大小。

fread和fwrite一般用於二進位制檔案的輸入輸出。用於ascii檔案字元發生轉換的情況下可能出現與原設想的情況不同。

5.putw()和getw()用來對磁碟檔案讀寫乙個整數。

例如putw(10,fp);//返回值為輸出的數字(int)

int i=getw(fp);//失敗則返回-1

但注意putw()和getw()都是按二進位制輸入輸出的。

所以如果你用putw()輸入資料到檔案後以文字的方式開啟看到的將都是亂碼。

同樣如果你在文字檔案中輸入了數字並儲存,用getw()來讀入的話讀入的結果並不是你想象的那樣。因為它是按二進位制讀的

摘自 shimachao的專欄

c語言輸入輸出函式

c語言輸入輸出函式有很多,標準i o函式中包含了如下幾個常用的函式 scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf const char format...

C語言輸入輸出函式

c語言輸入輸出函式有很多,標準i o函式中包含了如下幾個常用的函式 scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf const char format...

c語言輸入輸出函式

c語言輸入輸出函式有很多,標準i o函式中包含了如下幾個常用的函式 scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf const char format...