fp=fopen(filename,"rb+"); fseek(fp,-1L*sizeof(STU),SEEK_END); fwrite(&n,sizeof(STU),1,fp); fclose(fp); int main()/*修改覆盖最后一个学生数据*/ STU t= 10001,"MaChao",91,92,77, 10002,"CaoKai",75,60,88, 10003,"LiSi",85,70,78, 10004,"FangFang",90,82,87, 10005,"Zha...
fseek(fp,-100L,2);把文件内部指针退回到离文件结尾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*sizeo...
0L,SEEK_END);/* go to end of file */last=ftell(fp);for(count=1L;count<=last;count++){...
if(a==--1L) printf("error\n"); 变量a 存放当前位置,如调用函数时出错(如不存在 fp 文件),则输出“error”。 tell(告诉,吩咐,断定,知道,) 例13.4 有一个磁盘文件,第一次将它的内容显示在屏幕上,第二次把它复制 #include "stdio.h" void main() ...
fseek(fp, -1L*sizeof(STU),SEEK_END); fwrite(&n,sizeof(STU), 1, fp); fclose(fp); } voidmain() { STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88}, {10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87}, ...
(fp=fopen(file,"rb"))==NULL){fprintf(stderr,"can't open the %s\n",file);exit(1);}fseek(fp,0L,SEEK_END);last=ftell(fp);//得到fp的长度for(count=1L;count<=last;count++){fseek(fp,-count,SEEK_END);ch=getc(fp);//得到该指针所对应的字符putchar(ch);}putchar('\n');return0;...
fseek(fp,-100L,2);把文件内部指针退回到离文件结尾100字节处。使用实例:#include <stdio.h>#define N 5typedef 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)...
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...
fseek(fp,-1L,SEEK_CUR); fputc(c,fp); //system("pause"); 可以加这句话测试fputc是有缓冲的,在程序暂停时,打开文件查看,这时转换后的大写字符还没有写入文件。 fseek(fp,0L,SEEK_CUR); //可以用后面讲的2种方法替代 } } return 0; } 先讲替代方法: 1、fflush(fp); 2、fpos_t pos; fgetpos...