在C中,我想從文件中讀取一些符號,並且對於它們中的每一個,我想將它們反向寫入。例如,如果輸入是:abcdef我希望輸出是:badcfe。C從文件中讀取並寫入反向
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
FILE *f,*g;
int main(int argc,char *argv[])
{
if((f=open(argv[1],O_RDONLY))==NULL)
{
fprintf(stderr,"Open file error: %s\n",argv[1]);
return 1;
}
if((g=open(argv[2],O_WRONLY|O_TRUNC|O_CREAT,O_RDWR))==NULL)
{
fprintf(stderr,"Open file error: %s\n",argv[2]);
fclose(f);
return 1;
}
int nr;
char *buffer;
buffer=(char *)malloc(sizeof(char));
char *bufferOut=buffer;
while((nr=read(f,buffer,2*sizeof(char))>0)){
bufferOut[1]=buffer[0];
bufferOut[0]=buffer[1];
if(write(g,bufferOut,2*sizeof(char))!=2*sizeof(char)){
printf("Writing ERROR!");
return 1;
}
}
close(f);
close(g);
return 0;
}
執行後,當我開G,內容是:aaccee
我在Linux上。
而你的問題是? – this
您只有一個緩衝區(帶有兩個指針)。 「buffer」和「bufferOut」都指向相同的內存。 – iveqy
非常感謝,我是個白癡!:) –