之前有講過 文件的打開和關閉。這里我們講一下文件的讀寫函數(shù)。和一些實用的小技巧。讓自己寫的代碼更加健壯♂。手動滑稽。
收!
在C語言中有提供多種的函數(shù),都具有文件讀寫的功能。如下:
字符讀寫:fgetc ,fputc
字符串讀寫:fgets ,fputs
格式化讀寫:fscanf , fprintf
數(shù)據(jù)塊讀寫:fread ,fwrite
字符讀寫
它們都是以字符作為基礎單位進行讀寫的。這個需要注意。
fgetc原型:
int fgetc (FILE *filepointer);
功能是從文件指針做指向的文件中讀取一個字符的數(shù)據(jù),同時把讀寫指針往前移動一個字節(jié)。 (這里的讀寫指針,大家可以理解為光標也就是我們平常打字的時候那個一閃一閃的豎杠。)
fputc原型:
int fputc (int c, FILE *filepointer);
功能是把c表示的字符數(shù)據(jù)輸出到文件指針所指的文件中去。同時把讀寫指針往前移動一個字節(jié)。
字符串讀寫
fgets原型:
char *fgets (char *s,int n, FILE *filepointer);
功能是從文件指針所指向的文件中,讀取長度n-1個字符的字符串,并且中字符串最后加上‘\0’,然后存放入s中,同時把讀取指針往前移動n-1, 假如函數(shù)中讀取過程中遇到換行符,那么函數(shù)返回。
fputs原型:
int fputs (char *s,FILE *filepointer);
功能是把s所表示的字符串寫到文件指針所指向的文件中,同時把讀取指針向前移動字符串長度個字節(jié)。注意函數(shù)是不會吧字符串末尾的‘\0’寫入進去的。
格式化讀寫
這個就不給你們看原型了,
直接看下面例子:
fprintf(fp,"%d,%f",i,f);fscanf(fp,"%d,%f",&i,&f);
這里fp是文件指針。
數(shù)據(jù)塊讀寫
fread原型:
unsingned fread (vpid *ptr,unsigned size,unsigned n,FILE *filepointer);
功能是從文件指針所指文件中讀取n次數(shù)據(jù),每次數(shù)據(jù)讀取大小是size個字節(jié),放到ptr里面,同時讀取坐標向前size×n個字節(jié)。
fwrite原型:
unsigned fwrite (void *ptr,unsigned size,unsigned n,FILE *filepointer);
功能是把ptr里面的數(shù)據(jù)塊寫入到文件指針中去。同時讀取坐標向前size×n個字節(jié)。
這里大家需要注意一點 格式化讀寫和字符串讀寫對二進制文件的操作是無意義的。
在讀取指針在文件最后的時候很多函數(shù)會在讀取時返回EOP。
EOF 本來表示文件末尾,意味著讀取結束,但是很多函數(shù)在讀取出錯時也返回 EOF,那么當返回EOF時,到底是文件讀取完畢了還是讀取出錯了?我們可以借助 中的兩個函數(shù)來判斷,分別是 feof() 和 ferror()。
feof() 函數(shù)用來判斷文件內(nèi)部指針是否指向了文件末尾,它的原型是:
int feof ( FILE * fp );
當指向文件末尾時返回非零值,否則返回零值。
ferror() 函數(shù)用來判斷文件操作是否出錯,它的原型是:
int ferror ( FILE *fp );
出錯時返回非零值,否則返回零值。
好了文章到此結束,大家如果覺得我的文章還可以的可以,關注,轉發(fā),收藏,評論,拜!
1.《c如何讀入文件的一列數(shù)》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡信息知識,僅代表作者本人觀點,與本網(wǎng)站無關,侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《c如何讀入文件的一列數(shù)》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉載時請保留本站內(nèi)容來源地址,http://f99ss.com/keji/3222079.html