Ritchie - Język ANSI C - cwiczenie 1.8

0

Program ma za zadanie zliczac tabulatory,znaki nowej linii i spacje. Nie działa on poprawnie (liczy blednie) i nie mam pomysłu jak go naprawić. Proszę o pomoc.

#include <stdio.h>
main(void)
{
int cc = 0;
int nowelinie = 0;
int tabulacje = 0;
int spacje = 0;
while(getchar()!=EOF)
{

if((getchar())=='\n'){ ++nowelinie;};
 if((getchar())=='\t'){ ++tabulacje;};
  if((getchar())==' '){ ++spacje;};

}

printf("%d\n",nowelinie);

printf("%d\n",tabulacje);

printf("%d\n",spacje);

}

0

getchar() wczytuje Ci nowy znak. Wczytuj w pętli jeden raz, przypisuj do zmiennej, sprawdzaj tą zmienną. Przy okazji, #include <ctype.h> i isspace()

0

Linijki kodu w C nie spłodziłem, ale wpisałem w google: 'c getchar()` i otrzymałem coś takiego:
"Funkcja getchar() czyta znak ze standardowego wejścia i go stamtąd usuwa."
Musisz stworzyć zmienną na znak i na niej robić swoje ify, bo obecnie przy każdym wywołaniu getchar() sprawdzasz inny znak, dlatego ci zły wynik wychodzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1