gpt4 book ai didi

在C程序中复制文件,但文件为空

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:18 25 4
gpt4 key购买 nike

我正在尝试将文件 test1.mal 的内容复制到 output.txt 中,程序说它正在这样做并且所有内容都可以编译,但是当我打开 output.txt 文件,它是空白的...有人能告诉我哪里出错了吗?

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


int main(void) {

char content[255];
char newcontent[255];

FILE *fp1, *fp2;
fp1 = fopen("test1.mal", "r");
fp2 = fopen("output.txt", "w");

if(fp1 == NULL || fp2 == NULL)
{
printf("error reading file\n");
exit(0);
}
printf("files opened correctly\n");
while(fgets(content, sizeof (content), fp1) !=NULL)
{
fputs(content, stdout);
strcpy (content, newcontent);
}

printf("%s", newcontent);
printf("text received\n");

while(fgets(content, sizeof(content), fp1) !=NULL)
{
fprintf(fp2, "output.txt");
}
printf("file created and text copied\n");

//fclose(fp1);
//fclose(fp2);
//return 0;
}

最佳答案

您正在将文件复制到标准输出:

fputs(content, stdout);

必须替换为

fputs(content, fp2);

或者,当您使用 fprintf 写入输出文件时,文件的光标已经在末尾。您可以将 fseek() 与 SEEK_SET 一起使用以将其置于开头。

关于在C程序中复制文件,但文件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43267023/

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