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