C语言文件定位,主要依靠fseek函数实现,具体代码如下,
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于成都定制网页设计,高端网页制作,对餐厅设计等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业网站推广优化,H5建站,响应式网站。
#include stdio.h
int main(int argc, char *argv[])
{
FILE *fp=NULL;
long len=0L;//文件长度
fp=fopen("test.dat","rb");//假设当前目录有test.dat文件
if(!fp)//检查文件打开是否正常
{
printf("文件打开失败,程序退出!\n");
exit(1);
}
fseek(fp,0L,SEEK_END);//文件定位到文件末尾
len=ftell(fp);//获取文件长度
if(len/10240)
printf("文件大小为%ldKB!\n",len/1024);
else
printf("文件大小为%ldB!\n",len);
rewind(fp);//文件指针移到开始处
if(fp)//关闭文件
{
fclose(fp);
fp=NULL;
}
return 0;
}
int fseek( FILE *stream, long offset, int origin );函数fseek()为文件指针stream设置位置数据。origin的值应该是下列值之一,
SEEK_SET(从文件的开始处开始搜索)
SEEK_CUR(从当前位置开始搜索)
SEEK_END(从文件的结束处开始搜索)
fseek()成功时返回0,失败时返回非零。
c语言find函数的用法详解
C语言之find()函数
find函数用于查找数组中的某一个指定元素的位置。
比如:有一个数组[0, 0, 5, 4, 4];
问:元素5的在什么位置,find函数 返回值 为 2;
find (数组名 + 起始查找元素的位置, 数组名 + 结束查找的元素位置, 想要查找的元素)
直接上代码:
#include iostream
#include vector
#include algorithm//注意要包含该头文件
using namespace std;
int main()
{
int nums[] = { 3, 1, 4, 1, 5, 9 };
int num_to_find = 5;
int start = 0;
int end = 5;
int* result = find( nums + start, nums + end, num_to_find );
if( result == nums + end )
{
cout "Did not find any number matching " num_to_find endl;
}
else
{
cout "Found a matching number: " *result endl;
}
return 0;
}
fseek本身无法定位下一行。
但是可以通过自定义函数来处理。
#include
stdio.h
int
getNextLinePos(FILE
*p)
{
int
ch;
int
curpos
=
0;
ch=getc(p);
curpos
=
ftell(p);
while(ch!=EOF)
{
putchar(ch);
ch=getc(p);
if(ch
==
'\n')
{
break;
}
}
return
(ftell(p)
-
curpos
+
1);
}
int
main(void)
{
FILE
*fp;
fp=fopen("FileDemo.tt","r");
if
(fp==NULL)
{
printf("I
can't
open
file!\n");
return
0;
}
fseek(fp,
getNextLinePos(fp),
SEEK_SET);
//
指向下一行
return
0;
}