Программа для копирования входного потока в выходной с заменой каждой строки - C (СИ)
Формулировка задачи:
Программа для копирования входного потока в выходной с заменой каждой строки, состоящей из одного или нескольких пробелов, одним пробелом.
Объясните пожалуйста построчно принцип действия, до меня что-то слабо доходит, с 7-ой по 13 строку.
#include <stdio.h>
void main (void) {
int c;
while((c = getchar()) != EOF) {
if(c == ' ') {
putchar(c);
while((c = getchar()) != EOF && c == ' ');
}
putchar(c);
}
return;
}Решение задачи: «Программа для копирования входного потока в выходной с заменой каждой строки»
textual
Листинг программы
#include <stdio.h>
int main () {
int c;
while((c = getchar()) != EOF) {
if(c == ' ') {
putchar(c);
while((c = getchar()) != EOF && c == ' ')
;
}
putchar(c);
}
return 0;
}
Объяснение кода листинга программы
- Включение стандартной библиотеки
- Объявление переменной типа int c
- Использование цикла while для чтения символов из стандартного ввода до конца файла
- Проверка на символ пробела
- Если символ равен пробелу, то запись этого символа в стандартный вывод
- Использование вложенного цикла while для чтения символов, пока не будет встречен символ пробела или конец файла
- Запись символа в стандартный вывод
- Цикл продолжается до тех пор, пока не будет встречен символ пробела или конец файла
- Возврат значения 0, что означает успешное завершение программы