gpt4 book ai didi

在C中将数据从一个文本文件复制到另一个

转载 作者:太空宇宙 更新时间:2023-11-04 04:55:49 26 4
gpt4 key购买 nike

我正在编写一个基本程序,从现有的文本文件中复制一个字符串并将该文本复制到一个新的文本文件中。我快到了,但我遇到了一些小问题。首先,我在复制后将文本行输出到屏幕,它在字符串后给我 3 个随机字符。我想知道为什么会这样。此外,该程序正在创建新的文本文件,但并未将字符串放入文件中。

这是我的代码:

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

int main(void)
{
char content[80];
char newcontent[80];

//Step 1: Open text files and check that they open//
FILE *fp1, *fp2;
fp1 = fopen("details.txt","r");
fp2 = fopen("copydetails.txt","w");

if(fp1 == NULL || fp2 == NULL)
{
printf("Error reading file\n");
exit(0);
}
printf("Files open correctly\n");
//Step 2: Get text from original file//
while(fgets(content, strlen(content), fp1) !=NULL)
{
fputs (content, stdout);
strcpy (content, newcontent);
}
printf("%s", newcontent);
printf("Text retrieved from original file\n");

//Step 3: Copy text to new file//
while(fgets(content, strlen(content), fp1) !=NULL)
{
fprintf(fp2, newcontent);
}
printf("file created and text copied to it");
//Step 4: Close both files and end program//
fclose(fp1);
fclose(fp2);
return 0;
}

最佳答案

你需要改变:

while(fgets(content, strlen(content), fp1) !=NULL)

您需要 sizeof 数组 content,而不是长度。

while(fgets(content, sizeof(content), fp1) !=NULL)

即使您在使用 content 之前初始化了它,strlen() 也会返回 0,您也不会从文件中读取任何内容。

另外,如果你想在写入新文件时重新读取输入文件,你需要 fclose() 输入文件和 fopen() 或者rewind() 它。

关于在C中将数据从一个文本文件复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8333869/

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