Создать новый текстовый файл, являющийся объединением содержимого исходных файлов - C (СИ)
Формулировка задачи:
Смысл программы Ω Создать файл, являющийся результатом конкатенации (слияния) других файлов. Имя файла-результата и имена соединяемых файлов задаются пользователем. язык (Си) Ω
Снизу моя кривая программа . Нужно ввести с клавиатуры имена файлов . Программа найдет файлы с такими именами и соединит их в другой файл имя которого мы тоже вводим с клавиатуры
прошу переделать мой код. Так как в нем много косяков, на исправление которых у меня не хватает мозгов.
P.s. файлы находятся C:\fail\text1.txt C:\fail\text2.txt C:\fail\text3.txt
#include <stdio.h>
#include <stdlib.h>
int main()
{
int Sw;
char a,b,c;
printf("Введите имя первого файла");
printf("Введите имя второго файла");
printf("Введите имя нового файла");
{
scanf("%s %s %с",&a,&b,&c);
FILE* a;
FILE* b;
File* c;
a = fopen(s, "r");
read_str(s);
b = fopen(s, "r");
read_str(s);
c = fopen(s, "w");
}
{ while ((sw = getc(a)) != EOF)
putc(sw, c);
fclose(a); }
{ while ((sw = getc(b)) != EOF)
putc(sw, c);
fclose(b); }
fclose(c);
}Решение задачи: «Создать новый текстовый файл, являющийся объединением содержимого исходных файлов»
textual
Листинг программы
#include <stdio.h>
int main()
{
int sw;
char a[255], b[255], c[255];
printf("Введите имя первого файла");
printf("Введите имя второго файла");
printf("Введите имя нового файла");
scanf("%s %s %s", a, b, c);
FILE* fa;
FILE* fb;
FILE* fc;
fa = fopen(a, "r");
fb = fopen(b, "r");
fc = fopen(c, "w");
while ((sw = getc(fa)) != EOF)
putc(sw, fc);
fclose(fa);
while ((sw = getc(fb)) != EOF)
putc(sw, fc);
fclose(fb);
fclose(fc);
}
Объяснение кода листинга программы
- В начале программы подключается стандартная библиотека C, которая содержит функции для работы с файлами и вводом-выводом.
- Затем определена функция main(), которая является точкой входа в программу.
- Внутри функции main() определены три переменные типа int и char: sw, a, b, c. Переменная sw используется для получения символов из файлов, а переменные a, b, c - для хранения имен файлов.
- С помощью функции printf() пользователю предлагается ввести имена трех файлов.
- С помощью функции scanf() считываются имена файлов и сохраняются в переменных a, b, c.
- Затем с помощью функции fopen() открываются файлы a, b, c для чтения и записи соответственно.
- Внутри двух циклов while с помощью функции getc() считываются символы из файлов a и b, а затем записываются в файл c с помощью функции putc().
- После окончания циклов while файлы a и b закрываются с помощью функции fclose().
- Затем закрывается файл c.
- В конце функции main() завершается выполнение программы.