某物流网站后台源码,策划书网站项目目标需求分析,做公司网站需要会什么,网站开发的项目流程标题的顺序是接着之前写的#xff0c;希望这篇博客对你有帮助 七. 随机读写函数
实际上#xff0c;无论是读还是写#xff0c;在一次调用顺序读写函数#xff0c;文件指针会移到已经读过或者写过的下一个位置#xff0c;从那个位置开始下一次读和写#xff08;在文件没有…标题的顺序是接着之前写的希望这篇博客对你有帮助 七. 随机读写函数
实际上无论是读还是写在一次调用顺序读写函数文件指针会移到已经读过或者写过的下一个位置从那个位置开始下一次读和写在文件没有关闭的前提下如果关闭了文件指针会回到最开始的地方进行读写
1. fseek
根据文件指针的位置和偏移量来定位文件指针 跳转网站 fseek - C Reference 注意事项 int fseek ( FILE * stream, long int offset, int origin ) 返回类型 int 2. 参数 : stream , offset , origin stream 是流的指针适用于文件 offset 是距离 orgin 位置的偏移量(正数是向右偏移几格负数是向左偏移几格 origin 只有三种 SEEK_SET 文件指针回到起始位置 SEEK_CUR 文件指针处于现在位置不动 SEEK_END 文件指针回到文章的结尾位置 参数类型是 FILE * long int int 3. 引用头文件 stdio.h 举例 文件的内容 #includestdio.h
int main()
{FILE* pa fopen(data.txt, r);printf(%c, fgetc(pa));printf(%c, fgetc(pa));fseek(pa, -1, SEEK_CUR);printf(%c, fgetc(pa));fseek(pa, 3, SEEK_SET);printf(%c, fgetc(pa));fseek(pa, -1, SEEK_END);printf(%c, fgetc(pa));fclose(pa);pa NULL;return 0;
} 运行结果 画图分析 第一次读取数据 第二次读取数据 第三次读取数据 第四次读取数据 第五次读取数据 2. ftell
返回文件指针相对于起始位置的偏移量 跳转网站 ftell - C Reference 注意事项 long int ftell ( FILE * stream ) 返回类型 lonf int返回的是偏移量 2. 参数 stream stream 是流的指针适用于文件 参数类型是 FILE * 3. 引用头文件 stdio.h 举例 #includestdio.h
int main()
{char ch[] ss;FILE* pa fopen(data.txt, r);fseek(pa, -1, SEEK_END);int tmp ftell(pa);printf(%d , tmp);fclose(pa);pa NULL;return 0;
} 运行结果 画图分析: 3. rewind 让文件指针的位置回到文件的起始位置 跳转网站 rewind - C Reference 注意事项 void rewind ( FILE * stream ) 返回类型 void 2. 参数 stream stream 是流的指针适用于文件 参数类型是 FILE * 3. 引用头文件 stdio.h 举例 #includestdio.h
int main()
{char ch[] ss;FILE* pa fopen(data.txt, r);fseek(pa, -1, SEEK_END);rewind(pa);printf(%c , getc(pa));fclose(pa);pa NULL;return 0;
} 运行结果 八. 文件读取结束的判定
文件读取结束有两者情况
正常的读到文件末尾而结束因为发生读取错误导致文件读取结束 判定导致文件读取结束原因的函数
1 . feof
当文件读取结束的时候判断是读取结束的原因是否是遇到文件尾结束 跳转网站 feof - C Reference 注意事项 int feof ( FILE * stream ) 返回类型 int 2. 参数 stream stream 是流的指针适用于文件 参数类型是 FILE * 3. 引用头文件 stdio.h 2 . ferror
当文件读取结束的时候判断是读取结束的原因是否是遇到文件尾结束 跳转网站 ferror - C Reference 注意事项 int ferror ( FILE * stream ) 返回类型 int 2. 参数 stream stream 是流的指针适用于文件 参数类型是 FILE * 3. 引用头文件 stdio.h feof 和 ferror 举例 #includestdio.h
int main()
{char ch[] ss;FILE* pa fopen(data.txt, r);while (getc(pa) ! EOF){;}if (ferror(pa)){printf(文件读取过程发生失败\n);}else if (feof(pa)){printf(文件正常遇到结尾\n);}fclose(pa);pa NULL;return 0;
} 运行结果 九. 文件缓冲区
缓冲文件系统
是指系统自动地在内存中为 程序中每一个正在使用的文件开辟一块“文件缓冲区”。从内存向磁盘输出数据会先送到内存中的缓冲区装满缓冲区后才⼀起送到磁盘上。缓冲区的大小根据C编译系统决定的。 所以我们往文件里面写入数据时立刻打开文件不能确保一定能找当刚才的数据如果想要获得数据可以先刷新缓冲区