#include
#include
int main(int argc, char* argv[]) {
if (argc < 3) {
std::cerr << "Usage: " << argv[0] << " ..." << std::endl;
return 1;
}
std::ofstream outFile(argv[1], std::ios::binary);
if (!outFile) {
std::cerr << "Cannot open output file." << std::endl;
return 1;
}
for (int i = 2; i < argc; ++i) {
std::ifstream inFile(argv[i], std::ios::binary);
if (!inFile) {
std::cerr << "Cannot open input file: " << argv[i] << std::endl;
return 1;
}
outFile << inFile.rdbuf();
inFile.close();
}
outFile.close();
return 0;
}
#include
#include
#include
int main(int argc, char* argv[]) {
// Проверяем, что количество аргументов больше 2 (имя программы + хотя бы один файл)
if (argc < 2) {
std::cerr << "Usage: " << argv[0] << " ... " << std::endl;
return 1;
}
// Имя выходного файла
std::string outputFilename = "output.txt";
std::ofstream outputFile(outputFilename, std::ios::out | std::ios::binary);
if (!outputFile) {
std::cerr << "Error creating output file: " << outputFilename << std::endl;
return 1;
}
// Проходим по всем файлам, переданным в аргументах
for (int i = 1; i < argc; ++i) {
std::ifstream inputFile(argv[i], std::ios::in | std::ios::binary);
if (!inputFile) {
std::cerr << "Error opening input file: " << argv[i] << std::endl;
continue;
}
// Копируем содержимое файла
outputFile << inputFile.rdbuf();
inputFile.close();
}
outputFile.close();
std::cout << "All files have been merged into " << outputFilename << std::endl;
return 0;
}
Объяснение: #include
#include
#include
#include
using namespace std;
int main(int argc, char* argv[]) {
// Проверяем, были ли переданы имена файлов
if (argc < 3) {
cerr << "Использование: " << argv[0] << " <имя_выходного_файла> <имя_файла_1> [<имя_файла_2> ...]" << endl;
return 1;
}
// Имя выходного файла
string output_filename = argv[1];
// Открываем выходной файл для записи
ofstream output_file(output_filename);
if (!output_file.is_open()) {
cerr << "Ошибка открытия файла: " << output_filename << endl;
return 1;
}
// Проходим по всем входным файлам
for (int i = 2; i < argc; ++i) {
// Имя входного файла
string input_filename = argv[i];
// Открываем входной файл для чтения
ifstream input_file(input_filename);
if (!input_file.is_open()) {
cerr << "Ошибка открытия файла: " << input_filename << endl;
continue; // Пропускаем файл, если его не удалось открыть
}
// Копируем содержимое входного файла в выходной
output_file << input_file.rdbuf();
// Закрываем входной файл
input_file.close();
}
// Закрываем выходной файл
output_file.close();
cout << "Файлы успешно объединены в " << output_filename << endl;
return 0;
}