将多个文件连接为一个文件
Concatenating multiple files into one
好的,所以我想将多个文件连接到一个文件中。问题是最终文件是空的。我想知道如何在不重写的情况下将内容写入文件。这是我的代码。提前感谢!
void concatenate()
{
fstream fileToConcatenate, result;
unsigned numberOfFiles = 0;
char fileName[MAX], finalFileName[MAX];
puts("Please tell me how many files you want to concatenate.");
cin >> numberOfFiles;
puts("Please tell me data for the resulted file.n*Hint: full path followed by the file name.n*E.g:C:\Users\IoanaAlexandra\test.txt");
cin >> finalFileName;
result.open(finalFileName, ios::out|ios::ate);
for (unsigned i = 0; i < numberOfFiles; i++)
{
switch (i)
{
case 0:puts("Please tell me the file data for the first file to be concatenated.n*Hint: full path followed by the file name.n*E.g:C:\Users\IoanaAlexandra\test.txt"); break;
case 1:puts("Please tell me the file data for the second file."); break;
case 2:puts("Please tell me the file data for the third file."); break;
default:cout << "Please tell me the file data for the " << i << "th file."; break;
}
cin >> fileName;
fileToConcatenate.open(fileName, ios::in);
if (result.is_open())
{
if (fileToConcatenate.is_open())
{
result << fileToConcatenate.rdbuf();
}
else
{
puts("The file you are trying to concatenate from doesn't exist!Try again!");
concatenate();
}
}
else
{
puts("The result file could not be created! Try again!");
concatenate();
}
}
fileToConcatenate.close();
result.close();
}
从循环外部删除result.open()
,并尝试将代码更改为类似以下内容:
fileToConcatenate.open(fileName, ios::in);
if (fileToConcatenate.is_open())
{
// open output file
result.open(finalFileName, ios::out|ios::ate);
// you should check so the output file really was opened correctly here
result << fileToConcatenate.rdbuf();
// close the input file
fileToConcatenate.close();
// close output file
result.close();
}
else
{
puts("The file you are trying to concatenate from doesn't exist!Try again!");
concatenate();
}
如果fileToConcatenate
在再次调用concatenate()
之前已打开,则还应关闭它。
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 挂起和取消挂起一个文件DLL
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- C++试图读取一个文件并输出到另一个文本文件
- 如何从另一个文件继承私有成员变量和公共函数
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何打开并写入一个名称取自C++中字符串的文件
- 构建一个由C和C++文件组成的库
- c++多进程编写一个唯一的文件
- 如何使用CLion在Mac上创建一个新的.txt文件
- 如何将class.cpp和class.hpp编译为一个.o文件
- 写入文件会产生一个空文件或根本没有文件
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 生成一个生成文件,该生成文件使用Automake在一个步骤中编译和链接所有源文件
- 为什么我的 heap.h 文件给我一个LNK2001错误?
- Pantheios 不使用 MFC 应用程序写入一个文件(一个 exe + 两个 DLL)
- 在C++中一次读取一个文件一个int
- 输入/输出文件(一个字母的大写)
- 如何使用两个预编译的头文件.一个用于托管代码,另一个用于非托管代码.xxx.PCH不是一个有效的预编译头文件