Переписать содержимое одного текстового файла в другой, но без пустых строк. - 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, что означает успешный конец работы программы.