C++程序 将一个文本文件的内容附加到另一个文本文件的

C++程序 将一个文本文件的内容附加到另一个文本文件的

给定源文件和目标文件。将源文件的内容附加到目标文件中,然后显示目标文件的内容。

例子 :

输入 : file.txt : “geeks”, file2.txt : “geeks for”
输出 : file2.txt : “geeks for geeks”

方法1:

方法:

  1. 打开inputstream的 file.txt 并以附加选项打开 file2.txt 以便不删除文件之前的内容。
  2. 检查是否在打开或查找文件时出现错误。 如果是,则抛出错误消息。
  3. 如果找到了两个文件,则将源文件中的内容写入目标文件。
  4. 显示目标文件的内容。

下面是上述方法的实现:

// C++ implementation to append
// content from source file to
// destination file
#include <bits/stdc++.h>
using namespace std;
 
// driver code
int main()
{
    fstream file;
 
    // Input stream class to
    // operate on files.
    ifstream ifile("file.txt", ios::in);
 
    // Output stream class to
    // operate on files.
    ofstream ofile("file2.txt", ios::out | ios::app);
 
    // check if file exists
    if (!ifile.is_open()) {
 
        // file not found (i.e, not opened).
        // Print an error message.
        cout << "file not found";
    }
    else {
        // then add more lines to
        // the file if need be
        ofile << ifile.rdbuf();
    }
    string word;
 
    // opening file
    file.open("file2.txt");
 
    // extracting words form the file
    while (file >> word) {
 
        // displaying content of
        // destination file
        cout << word << " ";
    }
 
    return 0;
}  

输出

file not found

方法2: 我们可以使用下面提到的不同函数来执行相同的操作:

  • fopen() 返回控制打开的文件流对象的指针
  • fprintf() 将指向格式的字符串写入流
  • fclose(): 关闭关联到流的文件并将其解除关联。
  • fgetc() 返回指定流的内部文件位置指示器当前指向的字符

方法:

  1. 使用 fopen() 以”read”mode打开源文件和以”append”mode打开目标文件
  2. 检查它们是否存在
  3. 使用 fgetc() 循环迭代源文件的每个字符,并使用 fprintf() 将其打印到目标文件中
  4. 使用 fclose() 关闭两个文件
  5. 以”read”mode打开目标文件
  6. 打印它
  7. 关闭它

下面是上述方法的实现:

// C++程序:附加文本并读取文本文件
#include <bits/stdc++.h>
 
using namespace std;
int main()
{
    // 以读取模式打开文件以读取其内容
    FILE* file = fopen("file.txt", "r");
   
    // 以附加模式打开文件以追加读取的内容
    FILE* file2 = fopen("file2.txt", "a");
    if (file2 == NULL) {
        cout << "文件未找到";
        return 1;
    }
    else if (file == NULL) {
        cout << "文件未找到";
        return 1;
    }
   
    // 从文件读取内容
    char ch = fgetc(file);
    while (ch != EOF) {
       
        // 将从文件读取的内容在file2中打印
        fprintf(file2, "%c", ch);
        ch = fgetc(file);
    }
    fclose(file);
    fclose(file2);
   
    // 以读取模式再次打开文件2以读取内容
    FILE* file3 = fopen("file2.txt", "r");
   
    // 从文件读取内容
    char ch2 = fgetc(file3);
    while (ch2 != EOF) {
       
        // 打印从文件读取的内容
        printf("%c", ch2);
        ch2 = fgetc(file3);
    }
    fclose(file3);
} 

输出结果

文件未找到

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例