C语言读有没有查找某个数据在哪个行或位置的函数

C语言读有没有查找某个数据在哪个行或位置的函数,第1张

这个。。。C语言好像没有吧,如果在文章中查找一个单词所在行的位置,就需要自己写了,不过有一些高效查找的算法,最常用的就是二分查找。

如果是线性查找的话也可以使用C++中的STL,里面有个find()和find_if()函数,这两个函数可以返回所要寻找的数据的位置。

这个问题要从FILE结构体的数据项组成讲起: struct _iobuf { char _ptr; //文件输入的下一个位置 int _cnt; //当前缓冲区的相对位置 char _base; //指基础位置(即是文件的起始位置) int _flag; //文件标志 int _file; //文件的有效性验证 int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取 int _bufsiz; //文件的大小 char _tmpfname; //临时文件名 } FILE; (注:这是vc++60对FILE的定义) 在用fopen()函数打开文件后系统将自动建立一个数据块存放上述信息。 其中“char _base; ” 指向文件头在缓冲区的位置(即fseek()函数第三形参origin的SEEK_SET常量) “char _ptr;” 减一即文件指针的当前位置(即fseek()函数第三形参origin的SEEK_CUR常量) 函数原型:int fseek( FILE stream, long offset, int origin ) 中offset参数是个相对变量,它是相对于origin而言的。比如 int fseek( fp,100L,SEEK_SET ); 就是以文件头为基准向后移动100个字节。原理就是对内存中的FILE结构体中的元素作如下 *** 作 FILE_ptr=FILE_base+100; int fseek( fp,100L,SEEK_CUR ); 就是以文件的当前位置为基准向后移动100个字节,相应的:FILE_ptr+=100; 其他的就不多讲了明白了吗

以上就是关于C语言读有没有查找某个数据在哪个行或位置的函数全部的内容,包括:C语言读有没有查找某个数据在哪个行或位置的函数、关于C语言的fseek()函数中的起始位置当前位置如何理解、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9691778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存