#include<stdlib.h>
#include<errno.h>
#include<stdio.h>
int main()
{
char *c=NULL,*c1,ch;
c=(char*)malloc(10*sizeof(char));
c1=(char*)malloc(10*sizeof(char));
char arg1[100],arg2[100];
int i,count=0;
FILE *fp,*fq;
printf("Name of the file:");
scanf("%s",arg1);
fp=fopen(arg1,"w+");
if(fp==NULL)
{
perror("Failed to open file");
return errno;
}
printf("\t\t\t%s\n\n",arg1);
printf("\t\tInput the text into the file\n");
printf("\t\tPress Ctrl+d to the stop\n");
while((*c=getchar())!=EOF)
{
fwrite(c,1,sizeof(c),fp);
count++;
}
printf("\n\n");
fclose(fp);
fp=fopen(arg1,"w+");
printf("Name of the output file:");
scanf("%s",arg2);
printf("Reversing the contents of the file.......\n");
fq=fopen(arg2,"w+");
printf("\t\t%s\n\n",arg2);
for(i=1;i<=count;i++)
{
fseek(fp,-(i+1),SEEK_END)
fwrite(c1,1,sizeof(c1),fq);
}
printf("Done....Opening the file\n");
rewind(fq);
for(i=0;i<=count;i++)
{
ch=getc(fp);
putc(ch,stdout);
}
fclose(fp);
fclose(fq);
return 0;
}
我想扭轉輸入文件的內容,並希望顯示反轉的內容,但我沒有得到它;我認爲我犯了一個邏輯錯誤。沒有開始所需的輸出
你得到什麼輸出?你有什麼試圖解決這個問題?你怎麼知道它不工作? – 2011-04-19 16:11:27
如果文件內容很小,則可能需要將所有內容加載到內存中,然後在那裏將其反轉。那個'fseek(...)'和'rewind()'對我來說看起來效率非常低。 – abeln 2011-04-19 16:14:02
我已經編譯了我的linux上的程序,我無法得到反轉內容的輸出 – 2011-04-19 16:14:50