[ svemirski_brod @ 12.11.2012. 19:16 ] @
Program treba da prepise tekst sa glavnog ulaza na izlaz. Ukoliko ima u tekstu suvisnih spejsova ili tabulacija program ih pretvara samo u jedan spejs.
Zadatak je iz Laslove zbirke, radi kako treba.
Interesuje me da li moze neko da mi pojasni kako funkcionise kod pocev od IF-a (boldovano).

#include <stdio.h>
#include <stdlib.h>
#define T 1
#define F 0
int main()
{
int znak, ima = T;
while((znak=getchar())!=EOF)
if(znak!=' '&&znak!='\t')
{
putchar(znak);
ima=znak=='\n';
}
else if(!ima)
{
putchar(' ');
ima=T;
}

return 0;
}

Hvala
[ 4co_R @ 13.11.2012. 00:21 ] @
Kada pokrenes program pritisni npr slovo 'r', tada promenljiva "znak" dobija vrednost 'r', zatim kada pritisnes
<enter> (new line character odlazi u bafer). Pošto je promenljiva "znak" različita od ' ' i od '\t' ispisuje se vrednost
promenljive "znak" tj 'r', promenljiva "ima" dobija vrednost 0 pošto znak nije '\n'. Zatim prom "znak" dobija vrednost
'\n' (new line ch) zbog while petlje (while((znak=getchar())!=EOF)). Ispisuje se znak '\n' i prom "ima" dobija
vrednost 1 jer je "znak"=='\n' i sada uslov else if(!ima) nije ispunjen, zatim program ponovo ceka tvoj unos...

Ispravite me ako negde grešim.