假设文件data.t 中包舍若干行文本。每行文本以字母数字等字符组成,长度小于1000个字符,最后以回车换行符或文件结束符结尾。
请编写程序:从文件 data.txt 中依次读入各行本,并把各行文本的字符次序颊倒一下,即原来在k位置上的字符将出现在n-k+1位置上,其中n是该行文本的长度(不包含最后的回车换行符或文件结束符),最后依次把各行颠倒了字符次序的文本保存到文件 result.txt中。
代码如下:如有帮助,请帮忙采纳一下,谢谢。
#include <stdio.h>
#include <string.h>
int main()
{
FILE* fpin,*fpout;
char buf[1010]={0};
int i,j,len;
char tmp;
fpin = fopen("data.txt","r");
if(fpin == 0)
{
printf("data.txt 打开失败");
return 0;
}
fpout = fopen("result.txt","w");
//逐行读取文件
while(!feof(fpin))
{
memset(buf,0,1010);
fgets(buf,1000,fpin);
len = strlen(buf);
if(buf[len-1]=='\n')
{
buf[len-1] = 0;
len-=1;
}
//逆序
for (i=0,j=len-1;i<j;i++,j--)
{
tmp = buf[i];
buf[i]=buf[j];
buf[j]=tmp;
}
buf[len] = '\n';
//写入文件
fputs(buf,fpout);
}
fclose(fpin);
fclose(fpout);
return 0;
}