您的位置:首页 > 其它

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);
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐