fgets() 有局限性,每次最多只能從文件中讀取一行內(nèi)容,因為 fgets 遇到換行符就結(jié)束讀取。如果希望讀取多行內(nèi)容,需要使用 fread 函數(shù);相應地寫入函數(shù)為 fwrite。
fread() 函數(shù)用來從指定文件中讀取塊數(shù)據(jù)。所謂塊數(shù)據(jù),也就是若干個字節(jié)的數(shù)據(jù),可以是一個字符,可以是一個字符串,可以是多行數(shù)據(jù),并沒有什么限制。fread() 的原型為:
size_t fread ( void *ptr, size_t size, size_t count, FILE *fp );
fwrite() 函數(shù)用來向文件中寫入塊數(shù)據(jù),它的原型為:
size_t fwrite ( void * ptr, size_t size, size_t count, FILE *fp );
對參數(shù)的說明:
ptr 為內(nèi)存區(qū)塊的指針,它可以是數(shù)組、變量、結(jié)構(gòu)體等。fread() 中的 ptr 用來存放讀取到的數(shù)據(jù),fwrite() 中的 ptr 用來存放要寫入的數(shù)據(jù)。
size:表示每個數(shù)據(jù)塊的字節(jié)數(shù)。
count:表示要讀寫的數(shù)據(jù)塊的塊數(shù)。
fp:表示文件指針。
理論上,每次讀寫 size*count 個字節(jié)的數(shù)據(jù)。
size_t 是在 stddef.h 頭文件中使用 typedef 定義的數(shù)據(jù)類型,表示無符號整數(shù),也即非負數(shù),常用來表示數(shù)量。
返回值:返回成功讀寫的塊數(shù),也即 count。如果返回值小于 count:
對于 fwrite() 來說,肯定發(fā)生了寫入錯誤,可以用 ferror() 函數(shù)檢測。
對于 fread() 來說,可能讀到了文件末尾,可能發(fā)生了錯誤,可以用 ferror() 或 feof() 檢測。
【示例】從鍵盤輸入一個數(shù)組,將數(shù)組寫入文件再讀取出來。
#include<stdio.h>#define N 5int main(){ //從鍵盤輸入的數(shù)據(jù)放入a,從文件讀取的數(shù)據(jù)放入b int a[N], b[N]; int i, size = sizeof(int); FILE *fp; if( (fp=fopen("D://demo.txt", "rb+")) == NULL ){ printf("Cannot open file, press any key to exit!/n"); getch(); exit(1); } //從鍵盤輸入數(shù)據(jù) 并保存到數(shù)組a for(i=0; i<N; i++){ scanf("%d", &a[i]); } //將數(shù)組a的內(nèi)容寫入到文件 fwrite(a, size, N, fp); //將文件中的位置指針重新定位到文件開頭 rewind(fp); //從文件讀取內(nèi)容并保存到數(shù)組b fread(b, size, N, fp); //在屏幕上顯示數(shù)組b的內(nèi)容 for(i=0; i<N; i++){ printf("%d ", b[i]); } printf("/n"); fclose(fp); return 0;}
運行結(jié)果:
23 409 500 100 222 主站蜘蛛池模板: 国产高清在线观看 | 99re国产| 色片在线免费观看 | 日本一区二区三区四区 | 在线观看黄色av | 色噜噜视频在线观看 | 成人毛片在线观看 | 狠狠色噜噜狠狠狠狠2018 | 九九精品视频在线 | 成人片免费看 | 国产精品视频一区二区三区麻豆 | 日本草草影院 | 久久久久无码国产精品一区 | 日韩欧美一区二区三区免费观看 | 综合一区在线观看 | 亚洲精品一区二区三区四区高清 | 色综合99| 中文成人在线 | 久久精品小视频 | 日韩精品极品视频在线 | 国产精品二区三区 | 中文在线播放 | 色爱区综合五月激情 | 久久99国产精品久久99大师 | 精品国产一级片 | 超碰最新在线 | 日韩快播电影 | 国产成人精品免高潮在线观看 | 久久精品欧美 | 国产精品久久久久蜜臀 | 太平公主一级艳史播放高清 | 免费看a | 成人av高清 | 精品国产一区二区三区小蝌蚪 | 日本久久网 | 精品无码久久久久国产 | 亚洲精品一区二区三区四区高清 | 精品在线一区二区三区 | 国产3区 | www精品美女久久久tv | 特级淫片裸体免费看 |