【问题标题】:Paste contents of a file to another file from a particular line将文件的内容从特定行粘贴到另一个文件
【发布时间】:2021-02-03 12:12:27
【问题描述】:

我想使用 c++ 复制文本文件 (description.txt) 的内容并将其粘贴到另一个文本文件的特定行 (movie.txt)。

这是文件内容:

description.txt

克里斯·加德纳(Chris Gardner)在销售他投资的产品失去了毕生的收入后,开始在一家经纪公司从事无薪实习。他的妻子离开了他,他的儿子由他抚养。

movie.txt

电影名称:幸福的追求
影片说明:
// 此处为 description.txt 内容
首次发布:2006 年 11 月
导演:加布里埃尔·穆奇诺
改编自:幸福的追求

【问题讨论】:

    标签: c++ file fstream ifstream ofstream


    【解决方案1】:

    我做了一个你可以使用的函数。

    void CopyContentOfTextFile(char* sourceFile, char* targetFile, int targetLine)
    {
    
        FILE* resultFilePtr = fopen("result.txt", "w");
    
        FILE* sourceFilePtr = fopen(sourceFile, "r");
        FILE* targetFilePtr = fopen(targetFile, "r");
    
    
        char line[256];
        int lineCounter= 0;
    
        while (fgets(line, 256, targetFilePtr)!=NULL)
        {
            if (lineCounter == targetLine-1) 
            {
                char lineToBeAdded[256];
                //Now read sourceFile
                while (fgets(lineToBeAdded, 256, sourceFilePtr) != NULL)
                {
                    fprintf(resultFilePtr, "%s", lineToBeAdded);
                }
                fprintf(resultFilePtr, "%s", "\n");
            }
            fprintf(resultFilePtr, "%s", line);
            lineCounter++;
        }
    
        fclose(sourceFilePtr);
        fclose(targetFilePtr);
        fclose(resultFilePtr);
    
        //Remove old movie.txt file with new one
        remove(targetFile);
        rename("result.txt", targetFile);
    
    }
    

    要这样称呼它:

    int main()
    {
        char pathToSourceFile[] = "description.txt";
        char pathToTargetFile[] = "movie.txt";
        int line = 3;
        CopyContentOfTextFile(pathToSourceFile, pathToTargetFile, line);
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多