char i scanf

0

Witam.
Uczę się aktualnie języka c (wczesniej znalem tylko c++ i pascala) i napotkałem następujący problem. Otóż kiedy używam takiego kodu:

 
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main()
{
	int a=0;
	int b=0;
	char znak=0; 

//tutaj scanf dziala

	printf("wpisz pierwsza liczbe\n");
	scanf("%d", &a);
	printf("wpisz druga liczbe\n");
	scanf("%d", &b);
	printf("Wpisz znak\n");
	scanf("%c", &znak);
	printf("%d %d %c", a,b,znak); 

	
	
	system("PAUSE");
	return 0;
}

To nie chce mi pobrać, ani tym bardziej wyświetlić 'znaku'. Działa wtedy, kiedy użyję polecenia _getche LUB pobieranie dam w miejscu gdzie aktualnie jest komentarz.

Pytanie brzmi: dlaczego nie mogę użyć funkcji scanf dla chara na końcu?

0

Po dwóch pierwszych scanfach w buforze pozostaje znak końca wiersza, który automatycznie jest wczytywany do zmiennej znak.

0

Zmień scanf dla znaku jak poniżej, żeby zignorować białe znaki (\n po wpisaniu liczby zostaje).

scanf(" %c", &znak);

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