Переписать в текстовый файл Т2 содержимое текстового файла Т1 без строк, содержащих цифры - C (СИ)
Формулировка задачи:
Help. Чистый си
Разработать программу, переписывающую в текстовый файл Т2 содержимое текстового файла Т1, но без строк, содержащих цифры.
Решение задачи: «Переписать в текстовый файл Т2 содержимое текстового файла Т1 без строк, содержащих цифры»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//Разработать программу, переписывающую в текстовый файл Т2 содержимое текстового файла Т1,
// но без строк, содержащих цифры.
int main()
{
FILE *f1, *f2;
f1 = fopen("T1.txt", "r");
if(f1 == NULL){
fprintf(stderr, "File not found.Create and fill the data file T1.");
exit(1);
}
f2 = fopen("T2.txt", "w");
if(f2 == NULL){
fprintf(stderr, "Error opening file T2.");
exit(2);
}
int n = 0;
char s[128];
while(fgets(s, 128, f1)){
if(!strpbrk(s, "1234567890")){
if(fprintf(f2, "%s", s) < 0){
fprintf(stderr, "File write error!");
exit (3);
}
}
n++;
}
if(n == 0){
fprintf(stderr, "No data into file T1.Fill the data.");
exit(4);
}
fclose(f1);
fclose(f2);
return 0;
}
Объяснение кода листинга программы
- В начале программы подключаются необходимые библиотеки: stdio.h, string.h и stdlib.h.
- Затем следует объявление переменных:
f1иf2- файловые указатели, которые будут использоваться для работы с файлами;n- счётчик, который будет использоваться для подсчёта количества строк, которые были успешно скопированы в файл Т2;s- строка, которая будет использоваться для чтения строк из файла Т1 и их записи в файл Т2.
- Далее открывается файл Т1 для чтения (
f1) и файл Т2 для записи (f2). Если один из файлов не может быть открыт, программа выводит сообщение об ошибке и завершает своё выполнение. - В цикле while с помощью функции fgets считываются строки из файла Т1. Если строка не содержит цифр (проверка с помощью функции strpbrk и символов
1234567890), то она записывается в файл Т2 с помощью функции fprintf. - После каждой успешной записи счётчик n увеличивается на единицу.
- Если в файле Т1 не было найдено ни одной строки без цифр, то выводится сообщение об ошибке и программа завершает своё выполнение.
- В конце программы файлы Т1 и Т2 закрываются с помощью функции fclose, а возвращаемое значение функции main равно 0, что означает успешное выполнение программы.