-2

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

FILE *addressPtr;
FILE *ressPtr;   

addressPtr = fopen("temporary.txt","w");

这组代码处于开关状态

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!!");

我只是了解了这些文件操作,并不知道出了什么问题

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

4

1 回答 1

-1

您需要以binary模式打开文件。

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!!");

}

这实际上将一个名为的文件复制source.jpg到另一个名为dest.jpg.

希望你得到你的答案。

于 2013-12-17T12:42:50.523 回答