百度
360搜索
搜狗搜索

c语言fseek函数的功能,c语言文件操作的问题~~详细介绍

本文目录一览: c语言:这两个语句什么意思 fseek(fp,0L,0); fprintf(fp,%d ,a

fseek函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。
fprintf是C/C++中的一个格式化写—库函数,位于头文件

中,其作用是格式化输出到一个流/文件中;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(argument)。

fseek(fp,0L,0);应该是这样吧,总是为文件指针 指向文件的第一个位置。

fseek()函数

功能:移动文件位置指针到指定的位置

一般形式:fseek(文件指针,位移量,起始点);

其中位移量表示位置指针移动的字节数,要求为long类型,以便文件长度大于64KB时不会出错

起始点表示从何处开始计算位移量,规定有三种:文件开头0,当前位置1和文件结尾2

各位C语言的高手们,小弟我今天遇到一个fseek函数,不知道他在一下程序的含义是什么,还望各位不吝赐教啊

你的文件保存的是一个student结构体
fseek(fp,i*sizeof(struct student),0);
是从文件头每次移动一个结构体长度,然后去取下一个结构体数据
fseek 用于二进制方式打开的文件,移动文件读写指针位置.
通常文件打开后,读写位置按先后顺序.但有时你想变动读写位置,例如重新从某处起,再读一次.
fseek有3个参数,函数原型:
int fseek( FILE *stream, long offset, int origin );
第一个是文件流,第3个是指针零点位置,第2个是把指针移动到的地点.
第3个参数取值等于下列3个之1
SEEK_CUR -- 1 为当前指针位置
SEEK_END -- 2 为文件尾
SEEK_SET -- 0 为文件起始
第2个参数为偏移量,字节数,长整型.
fseek(fp,i*sizeof(struct student),0); 把文件指针从文件头移动,i个结构体长度

C语言ab+方式打开文件以及fseek函数

的文件用ab+方式打开,a的意思就是追加,声明原内容不会变化。
如果要修改原有内容,应该以wb+方式打开,这种方式,是包含了a的,也就是,可以向末尾追加内容。
我记得ab+是用于读取文件和仅在文件末尾新增内容的,前面的数据确实会受到保护。如果想修改之前的内容,请使用wb(只写)或wb+(可读可写)
打开文件可以用fopen。
函数原型:FILE * fopen(const char * path,const char * mode);
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。
打开文件实例:
#include

#define F_PATH "d:\\myfile\\file.dat"

int main(void)

{

FILE*fp=NULL;//需要注意

fp=fopen(F_PATH,"ab+");

if(NULL==fp)

{

return -1;//要返回错误代码

}

fclose(fp);

fp=NULL;//需要指向空,否则会指向原打开文件地址

return 0;

}

fseek函数功能:重定位流(数据流/文件)上的文件内部位置指针

注意:文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件

int fseek(FILE *stream, long offset, int fromwhere);

参数:stream 文件指针,fromwhere起始基准点,offset在基准点的基础上的偏移量。

返回值:成功,返回0,失败返回-1,并设置errno的值,可以用perror()函数输出错误。

实例:

#include

long filesize(FILE*stream);

int main(void)

{

FILE *stream;

stream=fopen("MYFILE.TXT","w+");

fprintf(stream,"Thisisatest");

printf("FilesizeofMYFILE.TXTis%ldbytes\n",filesize(stream));

fclose(stream);

return 0;

}

long filesize(FILE*stream)

{

long curpos,length;

curpos=ftell(stream);

fseek(stream,0L,SEEK_END);

length=ftell(stream);

fseek(stream,curpos,SEEK_SET);

return length;

}

在c语言中,fseek(fp,sizeof(int)3,0)是什么意思

int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。
如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
所以,fseek(fp,sizeof(int)*3,0)函数将文件指针指向从文件开头,向后偏移3个int单元的地方。

C语言中,fseek函数怎么控制移动的方向?怎么往前或往后,最好能有个例子。 谢谢!

fseek有三个参数,第1个是文件句柄,通过打开文件时得到;第2个就是移动的字节数,这个数可以是正的,就是向后(文件尾部)移动,也可以是负的,即向前(文件头部)移动;第3个参数指明从哪里移动,如果写SEEK_SET就是从文件头部移动多少字节,如果写SEEK_END则是从尾部开始移动,SEEK_CUR则是从当前位置移动。
比如
要将文件指针移动到文件开始的第24字节位置:fseek(fp,24,SEEK_SET);
移动到文件尾部向前50字节:fseek(fp,-50,SEEK_SET);
在当前位置移动8个字节(跳过8个字节数据):fseek(fp,8,SEEK_CUR);
在当前位置向前移动16个字节(准备重新读取数据):fseek(fp,-16,SEEK_CUR);

c语言文件操作的问题~~

文件读写有定位函数fseek();怎么用你看书,书上很清楚
文件定位
移动文件内部位置指针的函数主要有两个,即 rewind 函数和fseek函数。
rewind函数前面已多次使用过,其调用形式为:
rewind(文件指针);
它的功能是把文件内部的位置指针移到文件首。
下面主要介绍fseek函数。
fseek函数用来移动文件内部位置指针,其调用形式为:
fseek(文件指针,位移量,起始点);
其中:
“文件指针”指向被移动的文件。
“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB 时不会出错。当用常量表示位移量时,要求加后缀“L”。
“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。
其表示方法如下表。
起始点 表示符号 数字表示
文件首 SEEK_SET 0
当前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
例如:
fseek(fp,100L,0);
其意义是把位置指针移到离文件首100个字节处。
还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。
文件的随机读写
在移动位置指针之后,即可用前面介绍的任一种读写函数进行读写。由于一般是读写一个数据据块,因此常用fread和fwrite函数。
下面用例题来说明文件的随机读写。
【例】在学生文件stu_list中读出第二个学生的数据。
#include

struct stu

{

char name[10];

int num;

int age;

char addr[15];

}boy,*qq;

main()

{

FILE *fp;

char ch;

int i=1;

qq=&boy;

if((fp=fopen("stu_list","rb"))==NULL)

{

printf("Cannot open file strike any key exit!");

getch();

exit(1);

}

rewind(fp);

fseek(fp,i*sizeof(struct stu),0);

fread(qq,sizeof(struct stu),1,fp);

printf("\n\nname\tnumber age addr\n");

printf("%s\t%5d %7d %s\n",qq->name,qq->num,qq->age,

qq->addr);

}

文件stu_list已建立,本程序用随机读出的方法读出第二个学生的数据。程序中定义boy为stu类型变量,qq为指向boy的指针。以读二进制文件方式打开文件,程序第22行移动文件位置指针。其中的i值为1,表示从文件头开始,移动一个stu类型的长度,然后再读出的数据即为第二个学生的数据。

C语言中fseek函数的第2个和第3个参数的具体含义?

fseek函数:
int
fseek(fp,offset,base)
FILE
*fp;
long
offset;
int
base;
其中,第二个参数offset是位移量,第三个参数base是基准
函数的功能是
将fp所指向的文件位置指针移到以base所指出的位置为基准、以offset为位移量的位置

c语言中fgets 、fputs、fread、fscanf、fseek的区别和作用

fgets()从文件读取一个字符串
fputs()将一个字符串输出到文件
fread()从文件以二进制方式读取数据
fscanf()是scanf()的文件版本
fseek()将文件指针定位到文件中需要的位置
fread:是读取数据
fwrite:是写入数据
1.函数功能
用来读写一个数据块。
2.一般调用形式
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
3.说明
(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针。
注意:1
完成次写操(fwrite())作后必须关闭流(fclose());
2
完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(file
*
fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;
3
fprintf()

按格式输入到流,其原型是int
fprintf(file
*stream,
const
char
*format[,
argument,
...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int
c
=
fprintf(fp,
"%s
%s
%d
%f",
str1,str2,
a,
b)
;str1:10字节;str2:
10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。
4.fscanf

scanf
相似
:当能正常读入数据时,
fscanf
返回读入数据的个数,否则返回
eof

阅读更多 >>>  fscanf和fprintf的区别,为什么很多库函数名称前有f 如fscanf ,fclose,fprintf, 等等,这是什么意思

C++文件中的移动文件指针的函数怎么用

#include

#include

using namespace std;

其实是在ios中定义的

先说一下C语言中fseek()的功能:

函数原型:int fseek(FILE *fp, LONG offset, int origin)

参数含义:fp 文件指针 offset 相对于origin规定的偏移位置量 origin 指针移动的起始位置,可设置为以下三种情况: SEEK_SET 文件开始位置 SEEK_CUR 文件当前位置 SEEK_END 文件结束位置

C++中seep()和seekg()函数功能

seekp:设置输出文件流的文件流指针位置

seekg:设置输入文件流的文件流指针位置

函数原型:

ostream& seekp( streampos pos );

ostream& seekp( streamoff off, ios::seek_dir dir );

istream& seekg( streampos pos );

istream& seekg( streamoff off, ios::seek_dir dir );

函数参数

pos:新的文件流指针位置值

off:需要偏移的值

dir:搜索的起始位置

dir参数用于对文件流指针的定位操作上,代表搜索的起始位置

在ios中定义的枚举类型:

enum seek_dir {beg, cur, end};

每个枚举常量的含义:

ios::beg:文件流的起始位置

ios::cur:文件流的当前位置

ios::end:文件流的结束位置

网站数据信息

"c语言fseek函数的功能,c语言文件操作的问题~~"浏览人数已经达到18次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:c语言fseek函数的功能,c语言文件操作的问题~~的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!