C语言编程,把第一个文件内容读出来倒着写入另一个文件。可以用链表或数组, 急!

如题所述

//手动建立一个res.txt,文件,输入字符串
//再建立一个空白文件dst.txt
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
FILE *fp;
char a[100];

if((fp=fopen("res.txt","r"))==NULL)
{
printf("文件打开错误");
exit(0);

}
int i=0;
char c=fgetc(fp);
while(c!=EOF)
{
a[i]=c;
i++;
c=fgetc(fp);
}
fclose(fp);

int n=i;

if((fp=fopen("dst.txt","w"))==NULL)
{
printf("文件打开错误");
exit(0);

}

i=0;
while(i<n)
{
fputc(a[n-i-1],fp);
i++;
}

fclose(fp);

}追问

麻烦给一下注释,谢谢

追答

#include
#include

void main()
{
FILE *fp;//文件指针
char a[100];//盛放源文件内容

if((fp=fopen("res.txt","r"))==NULL)//判断是否成功打开源文件,执行读取操作
{
printf("文件打开错误");
exit(0);
}
int i=0;//纪录源文件中字符的个数
char c=fgetc(fp);//取第一个字符
while(c!=EOF)//判断是否到文件尾部
{
a[i]=c;//存入数组
i++;
c=fgetc(fp);//读取下一个字符
}
fclose(fp);//关闭文件

int n=i;//中间变量n

if((fp=fopen("dst.txt","w"))==NULL))//判断是否成功打开目标文件,执行写操作
{
printf("文件打开错误");
exit(0);
}
i=0;
while(i<n)//是否到数组最后
{
fputc(a[n-i-1],fp);//倒序输出到目标文件
i++;
}

fclose(fp);//关闭文件

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-24
FILE*readfp;
FILE *writefp;
char buf[MAXLINE]
readfp=open("readfilename","r");
writefp=open("writefilenae","w");
while(buf[sizeof(buf)]!=EOF)
{
read(fp,buf,MAXLINE);
for(int n=sizeof(buf);n!=0;n--)
fputc(buf[n],writefp);
lseek(readfp,MAXLINE,SEEK_CUR);
}
大概就是这样,我没调试,再加上错误判断差不多了。
相似回答