我正在编写一个获取文件内容并将其反转的程序,我想将反转的输出放入output.txt文件中,但没有任何内容被复制到output.txt中 内容正在逆转,但没有复制到另一个文件。 (我创建了一个“output.txt”文件,我希望将原始文本复制到。这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
FILE *fp, *fp2;
char ch;
int a;
char c;
int s;
int i, pos;
int choice = 0;
fp = fopen(argv[1],"r");
if (fp == NULL)
{
printf("file doesnt exist \n");
}
fp2 = fopen(argv[2], "w");
if(fp2 == NULL) {
printf("ERRORRR");
exit(1);
}
fseek(fp,0,SEEK_END);
pos=ftell(fp);
i = 0;
while (i < pos){
i++;
fseek(fp,-i,SEEK_END);
ch = fgetc(fp);
printf("%c", ch);
fputc(fp, fp2);
}
/*
do {
a = fgetc(fp);
fputc(a,fp2);
}
while ( a != EOF);
*/
return 0;
}
答案 0 :(得分:1)
我认为您必须在“写入模式”下打开第二个文件。
fp2 = fopen(argv[2], "w");
就像@Sami Kuhmonen所说,行fputc(fp, fp2);
有问题,因为fputc
有两个论点。
fputc(int character, File *stream);
答案 1 :(得分:0)
试试这个:
while (c){
c=getc(fp1);
fputc(c,fp2);
}