保存数据并将数据从一个文本文件传输到另一个

时间:2013-12-17 12:13:47

标签: file-io char fopen fclose fgetc

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

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的第一个字符,但是连续(永不结束)。

1 个答案:

答案 0 :(得分:-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的文件。

希望你得到答案。