gpt4 book ai didi

c - 将文件 a 复制到文件 b 时归档输出不正确

转载 作者:行者123 更新时间:2023-11-30 16:11:10 25 4
gpt4 key购买 nike

因此,我尝试将 f1.txt 复制到 f2.txt,例如,如果 f1.txt 是“Hello”而 f2.txt 是“World”,则 f2.txt 文件应更新为“HelloWorld”,但是相反,它变成了“HelloWorldÿ”。为什么会发生这种情况?

#include <stdio.h>
#include <stdlib.h>
int main()
{
int ch;
FILE *fp1,*fp2;
fp1 = fopen ("f1.txt","r");
fp2 = fopen ("f2.txt","a");
if (fp1==NULL)
{
printf("ERROR please enter correct file name");
exit(0);
}
while (ch!=EOF)
{
ch = fgetc(fp1);
fputc(ch,fp2);
}
fclose(fp1);
fclose(fp2);
}```

最佳答案

观察你的代码。考虑一下,经过多次迭代后,fgetc() 已读取文件的所有字符。您的 while 语句将再次执行一次,它将获得 EOF 并将其写入目标文件。然后它将停止迭代。正确的代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
int ch;
FILE* fp1, * fp2;
fp1 = fopen("f1.txt", "r");
fp2 = fopen("f2.txt", "a");
if (fp1 == NULL)
{
printf("ERROR please enter correct file name");
exit(0);
}
while ((ch = fgetc(fp1)) != EOF)
{
fputc(ch, fp2);
}
fclose(fp1);
fclose(fp2);
}

关于c - 将文件 a 复制到文件 b 时归档输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58682560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com