Осуществить конкатенацию двух файлов за счёт создания третьего файла - C (СИ) (76490)
Формулировка задачи:
Задание: Осуществить конкатенацию двух файлов за счёт создания третьего файла
"filecopy(in1, in3);" в этой строчке компилятору что-то не нравиться. Помогите, пожалуйста, разобраться
"char* ptt[]" что значит это во второй строчке?
#include <stdio.h>
int main(char* ptt[]) {
FILE *in1, *in2, *in3;
in1 = fopen(ptt[1],"r"); // чтение
in3 = fopen(ptt[3],"w"); // запись
filecopy(in1, in3);
fclose(in1);
in2 = fopen(ptt[2],"r");
filecopy(in2,in3);
fclose(in2);
fclose(in3);
return 0;
}Решение задачи: «Осуществить конкатенацию двух файлов за счёт создания третьего файла»
textual
Листинг программы
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main(int arg,char *arr[])
{
FILE *f1,*f2,*f3;
char ch;
if(arg!=4)
{
printf("Argument Missing ! Press key to exit.");
getchar();
exit(0);
}
f1 = fopen(arr[1],"r");
if(f1==NULL)
{
printf("Cannot open source file ! Press key to exit.");
getchar();
exit(0);
}
f2 = fopen(arr[2],"r");
if(f2==NULL)
{
printf("Cannot open source file ! Press key to exit.");
getchar();
exit(0);
}
f3 = fopen(arr[3],"w");
if(f3==NULL)
{
printf("Cannot copy file ! Press key to exit.");
fclose(f1);
fclose(f2);
getchar();
exit(0);
}
while(1)
{
ch = getc(f1);
if(ch==EOF)
break;
else
putc(ch,f3);
}
while(1)
{
ch = getc(f2);
if(ch==EOF)
break;
else
putc(ch,f3);
}
printf("File copied succesfully!");
fclose(f1);
fclose(f2);
fclose(f3);
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется входная аргументация программы
- Открываются первый и второй файлы для чтения
- Проверяется успешность открытия файлов
- Если файлы не открылись, выводится сообщение об ошибке и программа завершается
- Открывается третий файл для записи
- Проверяется успешность открытия файла
- Если файл не открылся, выводится сообщение об ошибке, закрываются первый и второй файлы, и программа завершается
- Если все файлы успешно открылись, то начинается процесс чтения и записи данных
- Пока не достигнут конец первого файла (EOF), считывается очередной символ и записывается в третий файл
- После достижения конца первого файла, начинается чтение второго файла по тем же условиям
- Пока не достигнут конец второго файла (EOF), считывается очередной символ и записывается в третий файл
- После достижения конца второго файла, закрываются все три файла
- Выводится сообщение о успешном копировании файла
- Программа завершается