C 在文件指定位置更新数据
2014-01-09 10:52
204 查看
#include<stdio.h> #include <stdlib.h> char * read(FILE *fp) /*注意这里,将fp文件中的剩余部分读取到一个字符数组中,并返回数组地址*/ { char c,*t=NULL; int i=0; t=malloc(sizeof(char)); while ((c=fgetc(fp))!=EOF) { t[i++]=c; t=realloc(t,sizeof(char)*(i+1)); } if (i) t[i]='\0'; else { free(t); t=NULL; } return t; } void write(FILE *fp,const char *t)/*注意这里,将read()()函数读取的内容写入fp文件中的当前读写位置*/ { int i; for (i = 0; t[i]; i++) { fputc(t[i],fp); } free(t); } void main() { int i; char c; char *t; /*注意这里*/ FILE *fp; fpos_t ps; /*注意这里,用于记录文件的读写位置*/ fp=fopen("E:/te.txt","r+"); while ((c=fgetc(fp))!=EOF) /*注意这里*/ { if (c==' ') { fgetpos(fp,&ps); /*注意这里*/ t=read()(fp); /*注意这里*/ fsetpos(fp,&ps); /*注意这里*/ fseek(fp,-1*sizeof(c),SEEK_CUR); /*注意这里*/ for(i=0;i<12;i++) fputc('\t',fp); /*注意这里*/ fgetpos(fp,&ps); /*注意这里*/ write(fp,t); /*注意这里*/ fsetpos(fp,&ps); /*注意这里*/ } } fclose(fp); }
相关文章推荐
- 如果使用追加标志O_APPEND打开一个文件以便读、写,能否仍能用lseek在任一位置开始读? 能否用lseek更新文件中任一部分的数据?
- 利用matlab把指定字符串在原位置替换为新的字符串(替换txt文件中的部分数据)
- fseek fread 指定文件指针位置开始读取数据
- android向文件指定位置写数据
- MySQL指定数据文件位置
- MySQL怎样从binlog文件指定时间去恢复数据,或者从指定位置恢复数据
- ffmpeg解码audio文件的时候,实现seek功能(即解码指定时间位置的数据)
- 如何从文件中提取指定位置的数据????
- mybatis中 mapper.xml文件中,获取数组中指定的位置的数据
- javaNIO局部修改文件中指定位置的部分数据
- java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题
- 随机数字、正则表达式替换文件指定位置的数据(遍历的方法)
- 第二十一章流 12输出数据到文件指定位置处seekp()
- C语言getpwuid()函数:从密码文件中取得指定uid的数据
- MySQL数据文件介绍及存放位置
- 将指定的表/视图中的数据导出为 html 文件
- java解压zip文件到指定位置
- 这是一个定时脚本,主要功能是遍历该文件夹下的所有文件并存储到数组,对数据中的文件进行操作,一个一个移动到指定的目录下,并删除原有文件
- 【参考】将表建在指定的数据文件上
- shell如何在指定文件的指定位置后面添加内容