Я пытаюсь найти способ сжатия пустых строк. Мой текущий код делает это для средней части, но в начале он не сжимает пустые строки.
КОД:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main (void)
{
int c, space = 0, newline = 0;
/*reads char by char til EOF*/
while((c = getchar()) != EOF)
{
if(c == '\t')
{
c = ' ';
}
if(c == ' ')
{
if(space == 0)
{
putchar(' ');
space = 1;
}
}
else if(c == '\n')
{
newline++;
if(newline <= 2)
{
putchar('\n');
}
}
else
{
if(space == 1)
{
space = 0;
}
if(c != '\n')
{
newline = 0;
}
putchar(c);
}
}
return 0;
}
Скажите, что я ввел:
[BLANK]
[BLANK]
[BLANK]
тестовое задание
[BLANK]
[BLANK]
[BLANK]
Я хочу вывод:
[BLANK]
тестовое задание
[BLANK]
Как мне изменить мой код, чтобы он выводил правильные вещи.
Заранее спасибо
PS: я использую перенаправление ввода / вывода для проверки.
РЕДАКТИРОВАТЬ: забыл упомянуть, что я использую текстовые файлы Linux, чтобы он избавился от / r
РЕДАКТИРОВАТЬ 2: Я загрузил выходной файл здесь:
http://www.mediafire.com/?gtbjctbn2jjaxdo