C文件操作常用函數

函數名: fseek 功 能: 重定位流上的文件指針 用 法: int fseek(FILE *stream, long offset, int fromwhere); 程序例: #include long filesize(FILE *stream); int main(void) { FILE *stream; stream = fopen("MYFILE.TXT", "w+"); fprintf(stream, "This is a test"); printf("Filesize of MYFILE.TXT is %ld bytes/n", filesize(stream)); fclose(stream); return 0; } long filesize(FILE *stream) { long curpos, length; curpos = ftell(stream); fseek(stream, 0L, SEEK_END); length = ftell(stream); fseek(stream, curpos, SEEK_SET); return length; } 函數名: ftell 功 能: 返回當前文件指針 用 法: long ftell(FILE *stream); 程序例: #include int main(void) { FILE *stream; stream = fopen("MYFILE.TXT", "w+"); fprintf(stream, "This is a test"); printf("The file pointer is at byte / %ld/n", ftell(stream)); fclose(stream); return 0; } 函數名: fread 功 能: 從一個流中讀數據 用 法: int fread(void *ptr, int size, int nitems, FILE *stream); 參 數:用於接收數據的地址(字符型指針)(ptr) 單個元素的大小(size) 元素個數(nitems) 提供數據的文件指針(stream) 程序例: #include #include int main(void) { FILE *stream; char msg[] = "this is a test"; char buf[20]; if ((stream = fopen("DUMMY.FIL", "w+")) == NULL) { fprintf(stderr, "Cannot open output file./n"); return 1; } /* write some data to the file */ fwrite(msg, strlen(msg)+1, 1, stream); /* seek to the beginning of the file */ fseek(stream, SEEK_SET, 0); /* read the data and display it */ fread(buf, strlen(msg)+1, 1, stream); printf("%s/n", buf); fclose(stream); return 0; } 函數名: fwrite 功 能: 寫內容到流中 用 法: int fwrite(void *ptr, int size, int nitems, FILE *stream); 程序例: #include struct mystruct { int i; char ch; }; int main(void) { FILE *stream; struct mystruct s; if ((stream = fopen("TEST.$$$", "wb")) == NULL) /* open file TEST.$$$ */ { fprintf(stderr, "Cannot open output file./n"); return 1; } s.i = 0; s.ch = 'A'; fwrite(&s, sizeof(s), 1, stream); /* write struct s to file */ fclose(stream); /* close file */ return 0; }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章