Pokud jsem to správně pochopil, očekáváš jako oddělovač sloupců mezeru?
Pokud ano, tak proč zvušuješ počitadlo sloupců cols i v případě, že načteš jiný znak, než mezeru?
Proč tam vůbec máš tu proměnnou predZnak?
Kde ji plníš před prvním průchodem?
Proč ji v každém průchodu přiřazuješ stále stejnou hodnotu proměnné c (predZnak = c)?
Co vlastně obsahuje ta proměnná c a kde ji plníš?
Jaký má smysl do proměnné znak uložit hodnotu proměnné c (char znak = c), když ji pak okamžitě přpíšeš načtenou hodnotou ze souboru (znak=getchar())?