File io 将数据从一个文本文件保存和传输到另一个文本文件

File io 将数据从一个文本文件保存和传输到另一个文本文件,file-io,char,fopen,fclose,fgetc,File Io,Char,Fopen,Fclose,Fgetc,在将数据从一个文本文件传输到另一个文本文件时遇到问题。我的想法是每个角色都转移它,但它似乎不起作用。我在开头添加了这些代码 FILE *addressPtr; FILE *ressPtr; 及 这组代码处于切换状态 fclose(addressPtr); addressPtr = fopen("temporary.txt","r"); while((filechar = fgetc(addressPtr)) != EOF){ fclose(addressPtr); res

在将数据从一个文本文件传输到另一个文本文件时遇到问题。我的想法是每个角色都转移它,但它似乎不起作用。我在开头添加了这些代码

FILE *addressPtr;
FILE *ressPtr;   

这组代码处于切换状态

fclose(addressPtr);
addressPtr = fopen("temporary.txt","r");
while((filechar = fgetc(addressPtr)) != EOF){
    fclose(addressPtr);
    ressPtr = fopen("Address Book.txt","a");
    fprintf(ressPtr,"%c",filechar);
    fclose(ressPtr);
    addressPtr = fopen("temporary.txt","r");
}
printf("The file has been successfully saved!!");
我只是了解了这些文件操作,不知道出了什么问题


如果我打开我的地址簿.txt文件,它将只显示我的temporary.txt文件的第一个字符,但会连续显示(永无止境)。

您需要以
二进制模式打开文件

addressPtr = fopen("temporary.txt","wb");
还可以使用
“rb”
以二进制模式写入以打开文件

我不知道为什么在循环中使用
fopen
。但是如果你想复制一个文件,这是我测试过的一些工作代码:

#include<stdio.h>

int main()
{
    FILE *addressPtr;
    FILE *ressPtr;
    char filechar = '\0';

    addressPtr = fopen("D:\\test\\source.jpg","rb");
    ressPtr = fopen("D:\\test\\dest.jpg","wb");

    while(!feof(addressPtr))
    {
        filechar = fgetc(addressPtr);
        fprintf(ressPtr,"%c",filechar);
    }
    fclose(addressPtr);
    fclose(ressPtr);
    printf("The file has been successfully saved!!");

}
#包括
int main()
{
文件*地址PTR;
文件*ressPtr;
char filechar='\0';
addressPtr=fopen(“D:\\test\\source.jpg”、“rb”);
ressPtr=fopen(“D:\\test\\dest.jpg”、“wb”);
而(!feof(addressPtr))
{
filechar=fgetc(addressPtr);
fprintf(ressPtr,“%c”,filechar);
}
fclose(addressPtr);
fclose(ressPtr);
printf(“文件已成功保存!!”;
}
这实际上是将一个名为
source.jpg
的文件复制到另一个名为
dest.jpg
的文件中


希望您能找到答案。

每次关闭并重新打开文件时,都会从头开始。您无需关闭一个文件即可写入另一个文件;只需将这两个文件保持打开状态,直到所有输入都用完,然后关闭它们。
#include<stdio.h>

int main()
{
    FILE *addressPtr;
    FILE *ressPtr;
    char filechar = '\0';

    addressPtr = fopen("D:\\test\\source.jpg","rb");
    ressPtr = fopen("D:\\test\\dest.jpg","wb");

    while(!feof(addressPtr))
    {
        filechar = fgetc(addressPtr);
        fprintf(ressPtr,"%c",filechar);
    }
    fclose(addressPtr);
    fclose(ressPtr);
    printf("The file has been successfully saved!!");

}