C++程序 将一个文本文件的内容附加到另一个文本文件的
给定源文件和目标文件。将源文件的内容附加到目标文件中,然后显示目标文件的内容。
例子 :
输入 : file.txt : “geeks”, file2.txt : “geeks for”
输出 : file2.txt : “geeks for geeks”
方法1:
方法:
- 打开inputstream的 file.txt 并以附加选项打开 file2.txt 以便不删除文件之前的内容。
- 检查是否在打开或查找文件时出现错误。 如果是,则抛出错误消息。
- 如果找到了两个文件,则将源文件中的内容写入目标文件。
- 显示目标文件的内容。
下面是上述方法的实现:
// 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() :返回指定流的内部文件位置指示器当前指向的字符
方法:
- 使用 fopen() 以”read”mode打开源文件和以”append”mode打开目标文件
- 检查它们是否存在
- 使用 fgetc() 循环迭代源文件的每个字符,并使用 fprintf() 将其打印到目标文件中
- 使用 fclose() 关闭两个文件
- 以”read”mode打开目标文件
- 打印它
- 关闭它
下面是上述方法的实现:
// 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);
}
输出结果
文件未找到