Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Brojanje tabova, razmaka i novih redova...

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Brojanje tabova, razmaka i novih redova...

[ Pregleda: 2779 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ice-D

Član broj: 203571
Poruke: 33
*.adsl.net.t-com.hr.



Profil

icon [Zadatak] Brojanje tabova, razmaka i novih redova...03.12.2008. u 15:13 - pre 186 meseci
Code:
#include <stdio.h>
int main()
{
    int tab, blank, newLine;
    tab = blank = newLine = 0;
    int ch;

    while ( ch = getchar() != EOF )
    {
        switch ( ch ){
            case 9:
                tab++;
                break;
            case 32:
                blank++;
                break;
            case 10:
                newLine++;
                break;
            default:
                break;
        }
    }
    printf ( "%d %d %d\n",tab, blank, newLine );
    return 0;
}

Pozdrav! Ovaj program bi treba brojati tabove, razmake i nove redove, ali meni uvijek ispisuje 0 0 0. Kad sam ga debagirao vidijeo sam da se switch case uvijek preskače. Također za vrijeme debagiranja uđe u asembli kod ( to obično zanači nekakva logička greška ) Program se mora riješit preko getchar() metode
 
Odgovor na temu

Ice-D

Član broj: 203571
Poruke: 33
*.adsl.net.t-com.hr.



Profil

icon Re: [Zadatak] Brojanje tabova, razmaka i novih redova...03.12.2008. u 15:18 - pre 186 meseci
Ne trebate se "mučit" :). Riješio sam, falile su zagrade kod ( (ch = getchar()) != EOF )
 
Odgovor na temu

Aleksandar Ilić
Software Developer
Beograd

Član broj: 15867
Poruke: 417

Sajt: www.ailic.rs


+3 Profil

icon Re: [Zadatak] Brojanje tabova, razmaka i novih redova...09.12.2008. u 21:33 - pre 186 meseci
Jednostavnije je ovako.

Code:
#include <stdio.h>
#include <ctype.h>

int main()
{
  int ch, tab=0, space=0, nline=0;
  
  while ((ch = getchar()) != EOF)
  {
    if (ch == '\t')
      tab++;
    else
    if (ch == ' ')
      space++;
    else
    if (ch == '\n')
      nline++;
  }
  
  printf("Tab: %d\nSpace: %d\nLines: %d\n", tab, space, nline);
  return 0;
}

„Naposletku, suština saznavanja nije u tome gubimo li igru, već kako je gubimo,
šta time spoznajemo, čemu nas je poraz naučio i kako nas to menja. Gubiti na određen
način znači - dobijati.”

Richard Bach
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Brojanje tabova, razmaka i novih redova...

[ Pregleda: 2779 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.