[C] Dziwne naliczanie znaków

0

Witam, robię program, który nalicza znaki aż do wciśnięcia klawisza K, jednak nalicza mi 2 razy więcej liter niż powinno:

#include <stdio.h>

int main()
{
	char znak;
	int all=0, lg=0;
	printf("Wpisuj litery, jesli chcesz zakonczyc wcisnij ""K"":\n");
	for(;;)
	{
		 scanf("%c", &znak);
		 if (znak=='K') break; 
                 all++;
		 if ((znak <='Z')&&(znak >='A')) lg++;
		
	}
	printf("Wpisales %d liter i %d wielich liter.\n", all, lg);
}

Gdy wpisze np. "c, a, G, K" to wyskakuje mi "Wpisales 6 liter i 1 wielich liter."
Gdy jednak zamiast

all++

napisze if ((znak>='A')&&(znak<='z')) all++;

 to wszystko działa dobrze.
0

Rozumiem że dla ciebie przecinki nie są znakami?

0

Napisałem z przecinkami, żeby było wiadomo o co chodzi. Oczywiście wpisuję najpierw c, potem klikam enter, potem wpisuję a, enter i tak dalej.

0

Nie jestem pewien, czy Enterów też nie wczytujesz wtedy ;) (kod 13 bądź 10) (znaki '\n' lub '\r')

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