Witam,
Czy mógłby mi ktoś wytłumaczyć zachowanie scanf() w takim kodzie:
#include <stdio.h>
int x,y,t;
char z;
t=0;
void main()
{
while (t<4)
{
scanf("%c %d %d",&z,&x,&y);
printf("Wartosc Z %c\n",z);
switch(z)
{
case '+':
printf("Kejs dziala\n");
break;
default:
break;
}
t++;
printf("Wartość t %d \n",t);
}
printf("Jestem juz tutaj");
}
Generalnie pierwszy obieg pętli działa poprawnie, potem niestety scanf() nie zapisuje pod zmienna z chara, wynik jest jak poniżej:
+ 1 2
Wartosc Z +
Kejs działa
Wartosc t 1
+ 7 8
Wartosc Z
Wartosc t 2
Wartosc Z
Wartosc t 3
+ 5 6
Wartosc Z
Wartosc t 4
Jestem juz tutaj
Zupełnie inaczej zachowuje się gdy zamiast '+' w case znajdzie się litera , np. 'a', wtedy:
a 1 2
Wartosc Z a
Kejs dziala
Wartosc t 1
a 2 3
Wartosc Z
Wartosc t 2
Wartosc Z a
Kejs dziala
Wartosc t 3
a 5 6
Wartosc Z
Wartosc t 4
Jestem juz tutaj
Wygląda jakby zapisywał znak nowej linii, ale dlaczego ?
Z gory dzieki za pomoc