fseek() typedef struct lnode

意思是把文件指针指向文件的开头

fseek
函数名: fseek
功 能: 重定位流上的文件指针
用 法: int fseek(FILE *stream,long offset, int fromwhere);
描 述:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值: 成功,返回0,否则返回其他值。
fseek position the file position pointer for thefile referenced by stream to the byte location calculated byoffset.


程序例:
#include<stdio.h>
long filesize(FILE *stream);
int main(void)
{
FILE *stream;
stream = fopen("MYFILE.TXT", "w+");
fprintf(stream, "This is a test");
printf("Filesize of MYFILE.TXT is %ld bytesn",filesize(stream));
fclose(stream);
return 0;
}
long filesize(FILE *stream)
{
long curpos, length;
fseek() typedef struct lnode
curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
return length;
}
int fseek( FILE *stream, long offset, int origin);
第一个参数stream为文件指针
第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END或 SEEK_SET
SEEK_SET: 文件开头
SEEK_CUR: 当前位置
SEEK_END: 文件结尾
其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.
简言之:
fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;
fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;
fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。


使用实例:
#include<stdio.h>
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, STU n)
{
FILE *fp;
fp = fopen(filename, "rb+");
fseek(fp, -1L*sizeof(STU),SEEK_END);
fwrite(&n, sizeof(STU), 1,fp);
fclose(fp);
}
void main()
{
STU t[N]={ {10001,"MaChao", 91, 92, 77},{10002,"CaoKai", 75, 60, 88},
{10003,"LiSi", 85, 70, 78}, {10004,"FangFang",90, 82, 87},
{10005,"ZhangSan", 95, 80, 88}};
STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N];
int i,j; FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(t, sizeof(STU), N, fp);
fclose(fp);
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
printf("nThe original data :nn");
for (j=0; j<N; j++)
{
printf("nNo: %ld Name: %-8s Scores:",ss[j].sno, ss[j].name);
for (i=0; i<3; i++) printf("%6.2f", ss[j].score[i]);
printf("n");
}
fun("student.dat", n);
printf("nThe data after modifing :nn");
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
for (j=0; j<N; j++)
{
printf("nNo: %ld Name: %-8s Scores:",ss[j].sno, ss[j].name);
for (i=0; i<3; i++) printf("%6.2f", ss[j].score[i]);
printf("n");
}
}

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/289867.html

更多阅读

转 slice_header header 跳转

http://blog.sina.com.cn/s/blog_4171e65d0100o4pt.htmlT264_slice_t结构体中的字段是要写入编码的码流供解码器取得参数1.结构体typedef struct{int32_t first_mb_in_slice; //一般为0,一个slice为一帧图像,所以为0first_mb_in_sli

C 中的typedef语法简介 c typedef 函数指针

根据名字也可以猜测到,typedef这种语法可以用于定义类型,如果某种类型的名称很长,或者未类型增加语义,那么我们就可以考虑使用typedef。看看最简单的例子:typedef int INT;上面的一行代码就表示INT也能代表int,这条定义可以在Windows头文

BMP图像文件格式 c 读取bmp

由四部分组成:A.第一部分为位图文件头BITMAPFILEHEADER,它是一个结构体,定义如下:typedef struct tagBITMAPFILEHEADER{WORD bfType;/文件类型,必须是0x424D,即字符串“BM”DWORD bfSize;/指定文件大小,包括这14个字节WORDbfReserved1;

声明:《fseek() typedef struct lnode》为网友豹纹癖分享!如侵犯到您的合法权益请联系我们删除