首页 > 编程知识 正文

c语言读写方式打开文件,c语言输入3位数逆序输出三位数

时间:2023-05-03 09:46:42 阅读:50419 作者:1498

随机读写文章目录前的fseek函数ftellrewind函数

随机读写前面

序贯读写,输入和输出只能序贯读写。 这样非常笨拙,为了更好地操作文件,出现了另一个文件操作函数,从文件中随机读取。

随机读写不是随便读写,而是按照操作者的意思读写文件的某个地方。

为了便于理解,直接访问代码:

例如,我们现在读取文件中的三个字符;

打开int main ()//文件file*pf=fopen ) ' data.txt ',' rb ' ); if(pf==null ) printf('%sn ',strerror(Errno ); 返回1; //文件打开失败,失败后返回}char arr={ 0 }; ARR=fgetc(pf; printf(%c(n )、arr ); ARR=fgetc(pf; printf(%c(n )、arr ); ARR=fgetc(pf; printf(%c(n )、arr ); //关闭文件fclose(pf ) pf=NULL; 返回0; }

因为第一个文件指针指向a,所以fgetc读取a字符,读取结束后通过将指针向后移动并指向b来内按,最后读取c字符后,指针指向c的后面。

总结:

如果一个字符也不读写,指针就会向后移动。

你为什么读写笨拙?

假设我们读写完了c字

现在读c后面的文字。 我该怎么读写呢?

所以你可以随机读写

介绍随机读写的几个函数

基于fseek函数的流位置指示器重定位

将与流相关联的位置指示器设置为新位置。

intfseek(file*stream,long offset,int origin ); 第一个参数是移动位置的文件指针,第三个参数是初始位置,而不是指向第一个元素的指针。 第二个参数是偏移量。 向左走是减法,向右走是加法

如果对fseek函数的调用成功,则返回0。 如果调用失败,则返回非零值。第三个参数有一下三中情况:

参数格式的含义SEEK_CUR文件指针的当前位置SEEK_END文件末尾的SEEK_SET文件的开头出现例题。

现在,如果指针指向c字符,接下来读取字符b的话,

有三种方法。1.让文件指针相对于其当前位置向左偏移1个字节

seek(pf,-1,SEEK_CUR ); //调整文件指针的位置ch=fgetc(pf )并导入//字符' b'printf(%c(n ),ch );2.让文件指针相对于文件开头右偏移1个字节(即指向文件开头)。

seek(pf,1,SEEK_SET ); //调整文件指针的位置ch=fgetc(pf )并导入//字符' b'printf(%c(n ),ch );3.让文件指针相对于文件末尾向前偏移6个字节。

seek(pf,-5,SEEK_END ); //调整文件指针的位置ch=fgetc(pf )并导入//字符' b'printf(%c(n ),ch ); 为了更清楚地查看文件指针位于何处,ftell出现了一个ftell函数,用于计算相对于当前文件指针起始位置的偏移。

长流(文件*流); ftell函数的参数是文件指针。 如果成功调用ftell函数,则返回相对于文件指针开始位置的偏移。 如果调用失败,则返回- 1。

长偏移=ftell (pf;

rewind函数voidrewind(file*stream ); rewind函数的作用是将传递的文件指针移回文件的开头。

如果要指向字符a,请直接使用此函数

rewind(pf; //调整文件指针的位置ch=fgetc(pf )并读取到//字符' a'printf(%c(n ),ch );用fseek函数与ftell函数求文件大小

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。