【问题标题】:Copy from one txt file to another with c用c从一个txt文件复制到另一个
【发布时间】:2015-06-30 07:39:54
【问题描述】:

我在复制 txt 文件时遇到问题。我需要从一个文件到另一个文件的信息。

我的代码是这样的,

_tprintf (TEXT("%s\n"), FindFileData.cFileName);

memset(fileName, 0x00, sizeof(fileName));
_stprintf(fileName, TEXT("%s\\%s"), path, FindFileData.cFileName); //iegust

FILE *fptr = fopen(fileName, "r");//atver

fscanf(fptr,"%[^\n]",c); //iegust datus no faila
printf("Data from file:\n%s",a);

strcpy(a, c); //nokope datus
buffer2 = strtok (c, ","); //norada partraukumu un tadas lietas
while (buffer2) {
        buffer2 = strtok (NULL, ",");
        if(i<1){ printf("%s\n", c);} 
        i++;
        while (buffer2 && *buffer2 == '\040'){
                buffer2++;
                // TODO ieliec iekavinas
        }
}

然后我使用基本的 fputs()。 我的问题是这段代码忽略了新行。它打印得很好,每个字符串都在它自己的行中,但这不会发生在文件中。 (\n)。

【问题讨论】:

  • 哦……请缩进……
  • 这就是 fputs 和 puts 之间的区别,它会让你绊倒。 puts 打印一个换行符。
  • 好的,很抱歉我的问题一团糟,这真是压力很大的一天。然后我将尝试了解如何使用 puts()。

标签: c copying


【解决方案1】:

您的问题是您只需要将信息从一个文件复制到另一个文件。那么,为什么您不使用比您的简单解决方案来做到这一点。我有一个片段代码可以轻松解决您的问题,如下所示。

如果我对你的问题有误,请给我建议。

#include <stdio.h>
#include <stdlib.h> // For exit()

int main()
{
    FILE *fptr1, *fptr2;
    char filename[100], c;

    printf("Enter the filename to open for reading \n");
    scanf("%s", filename);

    // Open one file for reading
    fptr1 = fopen(filename, "r");
    if (fptr1 == NULL)
    {
        printf("Cannot open file %s \n", filename);
        exit(0);
    }

    printf("Enter the filename to open for writing \n");
    scanf("%s", filename);

    // Open another file for writing
    fptr2 = fopen(filename, "w");
    if (fptr2 == NULL)
    {
        printf("Cannot open file %s \n", filename);
        exit(0);
    }

    // Read contents from file
    c = fgetc(fptr1);
    while (c != EOF)
    {
        fputc(c, fptr2);
        c = fgetc(fptr1);
    }

    printf("\nContents copied to %s", filename);

    fclose(fptr1);
    fclose(fptr2);
    return 0;
}

【讨论】:

  • 这只是其中的一部分。我有一个模板,我将模板复制到新文件,然后我从另一个文件中获取信息,将每个字符串用逗号分隔在特定的行中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-14
  • 1970-01-01
相关资源
最近更新 更多