Переписать содержимое одного текстового файла в другой, но без пустых строк. - C (СИ)
Формулировка задачи:
Переписать содержимое одного текстового файла в другой, но без пустых строк.
Решение задачи: «Переписать содержимое одного текстового файла в другой, но без пустых строк.»
textual
Листинг программы
#include <stdio.h> int main() { char file_name[16]; char c; unsigned char read_space; FILE *f; scanf("%s",file_name); f = fopen(file_name,"r"); if(f == NULL) { printf("Unable to open file %s",file_name); return 0; } read_space = 0; while( (c = getc(f)) != EOF) { if(c == '\n' && read_space == 1) { read_space = 0; fprintf(stdout,"%c",c); } else { read_space = 1; fprintf(stdout,"%c",c); } } fclose(f); return 0; }
Объяснение кода листинга программы
- Ввод имени файла с помощью функции scanf.
- Открытие файла с помощью функции fopen.
- Проверка на успешное открытие файла.
- Инициализация переменной read_space значением 0.
- Чтение файла посимвольно с помощью функции getc до достижения конца файла (EOF).
- Если текущий символ равен символу новой строки (\n) и переменная read_space равна 1, то:
- Сбрасываем значение переменной read_space обратно в 0.
- Выводим текущий символ на stdout с помощью функции fprintf.
- Если текущий символ не равен символу новой строки (\n), то:
- Устанавливаем значение переменной read_space равным 1.
- Выводим текущий символ на stdout с помощью функции fprintf.
- Закрытие файла с помощью функции fclose.
- Возврат значения 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д