#include <stdio.h> long filesize(FILE *stream); int main(void) { FILE *stream; stream = fopen("MYFILE.TXT", "w+"); fprintf(stream, "This is a test"); /**************************************************************** // fprintf的用法: // int fprintf( FILE *stream, const char *format, ... ); // fprintf()函数根据指定的格式发送信息(参数)到由stream(流)指定的文件. // fprintf()的返回值是输出的字符数,发生错误时返回一个负值. //****************************************************************/ //内存中储存为 54 68 69 73 20 69 73 20 61 20 74 65 73 74(16进制) //分别对应为 T h i s i s a t e s t //共14个字节 printf("Filesize of MYFILE.TXT is %ld bytes\n", filesize(stream)); fclose(stream); return 0; } long filesize(FILE *stream) { long length; fseek(stream, 0L, SEEK_END); /****************************************************************** // fseek的用法: // int fseek(FILE *stream, long offset, int fromwhere); // 第一个参数stream为文件指针 // 第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移 // 第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET // SEEK_SET: 文件开头 // SEEK_CUR: 当前位置 // SEEK_END: 文件结尾 // 其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2. // 简言之: // fseek(fp,100L,0);把文件内部指针移动到离文件开头100字节处; // fseek(fp,100L,1);把文件内部指针移动到离文件当前位置100字节处; // fseek(fp,-100L,2);把文件内部指针退回到离文件结尾100字节处。 //*******************************************************************/ length = ftell(stream); /******************************************************************** // ftell的用法: // long ftell(FILE *stream); // 函数 ftell() 用于得到文件位置指针当前位置相对于文件首的偏移字节数。 // 在随机方式存取文件时,由于文件位置频繁的前后移动,程序不容易确定文件的当前位置。 // 调用函数ftell()就能非常容易地确定文件的当前位置。 //********************************************************************/ return length; }
输出文件的字节数(fseek,ftell)
最新推荐文章于 2021-05-17 03:18:32 发布