贵州网站建设seo,建设网站需要展示什么区别,松原市建设局网站,建筑企业资质新规定2022目录 一.文件的随机读写1.fseek2.ftell3.rewind 二.文件读写结束的判定1.feof函数#xff08;不是用来判定文件结束的#xff09;2.ferror函数 三.文件缓冲区 一.文件的随机读写
1.fseek
int fseek(FILE* stream,long int offset,int origin);
//第一个参数文件流
//第二个… 目录 一.文件的随机读写1.fseek2.ftell3.rewind 二.文件读写结束的判定1.feof函数不是用来判定文件结束的2.ferror函数 三.文件缓冲区 一.文件的随机读写
1.fseek
int fseek(FILE* stream,long int offset,int origin);
//第一个参数文件流
//第二个参数偏移量
//偏移量如果是正数向后偏移
//偏移量如果是负数向前偏移
//第三个参数起始位置fseek从当前光标指向的流中获取字符 SEEK_SET:文件的起始位置 SEEK_CUR文件指针当前位置 SEEK_END:文件的结束位置
int main()
{FILE* pf fopen(test.txt, r);if (pf NULL){perror(fopen);return 1;}//读char ch fgetc(pf);printf(%c\n, ch);//afseek(pf, 4, SEEK_SET);//距文件起始位置4个偏移量printf(%c\n, fgetc(pf));//e//fseek(pf,5,SEEK_CUR);//距当前文件位置5个偏移量//printf(%c\n, fgetc(pf));//g//fseek(pf,-6,SEEK_END);//距文件末尾位置6个偏移量//printf(%c\n,fgetc(pf));//dfclose(pf);pf NULL;return 0;
}这是test.txt中的字符串
2.ftell
返回文件指针相对于起始位置的偏移量
long int ftell(FILE* stream);int main()
{FILE* pf fopen(test.txt, r);if (pf NULL){perror(fopen);return 1;}//读char ch fgetc(pf);printf(%c\n, ch);//aint ret ftell(pf);printf(%d\n, ret);//1fclose(pf);pf NULL;return 0;
}3.rewind
让文件指针的位置回到文件的起始位置
void rewind(FILE* stream);int main()
{FILE* pf fopen(test.txt, r);if (pf NULL){perror(fopen);return 1;}//读char ch fgetc(pf);printf(%c\n, ch);//aint ret ftell(pf);printf(%d\n, ret);//1rewind(pf);//文件指针回到起始位置printf(%c\n,fgetc(pf));//a//打印a说明文件回到了起始位置fclose(pf);pf NULL;return 0;
}二.文件读写结束的判定
文件现在读取结束了但是是什么原因读取结束的呢 1.可能是遇到了文件末尾 2.可能是读取的时候发生了错误
1.feof函数不是用来判定文件结束的
文件已经结束用来判定文件结束的原因 feof的作用是文件读取结束的时候判断文件是否遇到文件末而结束的 feof没有读到文件末尾返回0读到文件末尾返回非0值
int feof(FILE* stream)
//feof函数只需要关注传入的文件指针是否为NULL即可2.ferror函数
文件已经结束ferror读取的时候没有发生错误返回0发生错误返回非0值
int ferror(FILE* stream)
//ferror函数只需要关注传入的文件指针是否为NULL即可下面来举一个例子
int main()
{FILE* pf fopen(test.txt, r);//打开文件if (pf NULL){perror(fopen);//打印错误return 1;//发生错误提前返回}//使用char ch 0;while ((ch fgetc(pf)) ! EOF){printf(%c , ch);}printf(\n);if (feof(pf))//返回非0值{printf(读到文件末尾而结束\n);}else if(ferror(pf))//返回非0值{printf(读取错误而结束\n);perror(ferror);}fclose(pf);//关闭文件pf NULL;return 0;
}三.文件缓冲区