【问题标题】:saving and transfering data from one text file to another将数据从一个文本文件保存和传输到另一个
【发布时间】:2013-12-17 12:13:46
【问题描述】:

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

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 的第一个字符,但会连续显示(永无止境)。

【问题讨论】:

  • 每次关闭文件并重新打开它,它都会从头开始。您无需关闭一个文件即可写入另一个文件;只需保持两个文件都打开,直到用尽所有输入,然后关闭它们。

标签: file-io char fopen fclose fgetc


【解决方案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-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多