Strona 1 z 1

[C] Problem z wczytywaniem zmiennej char z klawiatury

: 21 paź 2014, o 22:56
autor: Assassin-Girl
Cześć.

Mam dość dziwaczny problem, a mianowicie:

Kod: Zaznacz cały

#include <stdio.h>

int main()
{
	char znak, znak_1;
	printf("Podaj znak:\t");
	scanf("%c",&znak);
	printf("Podaj znak_1:\t");
	scanf("%c",&znak_1);
}
Nie mam zielonego pojęcia, czemu mogę wprowadzić z klawiatury tylko "znak". Po wprowadzeniu program się krzaczy i nie mogę wprowadzić już z klawiatury "znak_1", bo program wg DevC++, CodeBlock'a i Putty się skończył.

Za wszelkie sugestie będę wdzięczna.

[C] Problem z wczytywaniem zmiennej char z klawiatury

: 21 paź 2014, o 23:34
autor: lukequaint
Zmień

Kod: Zaznacz cały

scanf("%c",&znak);
na:

Kod: Zaznacz cały

scanf(" %c",&znak); /* spacja po " */
scanf() wczytuje znak nowej linii, który pozostał po wczytaniu pierwszego znaku. Ta spacja każe mu pominąć białe znaki. To jedno z rozwiązań. Można też zmienić sposób wczytywania, np. na fgets() & sscanf().

[C] Problem z wczytywaniem zmiennej char z klawiatury

: 21 paź 2014, o 23:43
autor: Assassin-Girl
Dzięki, wszystko śmiga. :)

[C] Problem z wczytywaniem zmiennej char z klawiatury

: 13 sty 2015, o 22:07
autor: radek04
Co znaczy "scanf() wczytuje znak nowej linii". Gdzie tam jest znak nowej linii? Taki jest standard, czy efekt uboczny?

A czy można stosować %s zamiast %c, czy nie jest to dobre rozwiązanie?

[C] Problem z wczytywaniem zmiennej char z klawiatury

: 13 sty 2015, o 22:29
autor: WarNaX
radek, polecam najpierw poczytać nieco o specyfikacji języka