Komunikacja z użytkownikiem

Komunikacja z użytkownikiem
0

Witam. Chciałbym, by moja funkcja, ktora wprowadza dane zachowywała się w następujący sposób:
Chcę wprowadzić dwie dane liczbowe, dla wygody jednak wprowadzam char i poźniej konwertuje.
Naciśnięcie entera ze zle wprowadzonym znakiem powoduje wyświetlenie:
::
Wprowadzenie liczby spoza przedziału 0-2:
::
Moja funkcja wygląda tak:
http://ideone.com/iuLPYE
Dla tych wprowadzonych danych powinna zachować się tak:
:: 2 :: 3 :: 1 OK - mamy parę (2, 1)
Natomiast wyświetla
:: 2 :: 3 :: :: 1 OK - mamy (1, 2)
Skąd to podwójne '::'?

0

Dodam jeszcze, ze sytuacja
'
:: 1 2
OK - mamy (1, 2)
'
Jest jak najbardziej prawidłowa.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0

<ENTER> też jest znakiem i też jest wczytywany jako znak.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
0

Wiem, próbowałem w różnych miejscach wstawiać scanf("\n");, ale dalej nic z tego.

KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:6 miesięcy
  • Postów:2514
0

scanf(" %c", &znak); <-- zwróć uwagę na spację przed %c


░█░█░█░█░█░█░█░█░█░█░█░
0

@krwq Tego rownież probowałem. Obawiam się, że to nic nie daje. Albo nie działa przeskakiwanie enterem:
:: \n ::
albo inne rzeczy, zależy, gdzie te spacje wstawiam.

KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:6 miesięcy
  • Postów:2514
1

░█░█░█░█░█░█░█░█░█░█░█░
0

@krwq
Przeskakiwanie enterem nie działa.

KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:6 miesięcy
  • Postów:2514
0

przeskakiwanie enterem nie będzie Ci działać normalnie w standardowy sposób w ogóle bo konsola wysyła dane na standardowe wejście dopiero jak podasz jakiś niebiały znak. Jak chcesz to zrobić w niestandardowy sposób to zamiast scanf("%c", &c) używaj getch() z conio.h, aczkolwiek odejdziesz wtedy już od standardu


░█░█░█░█░█░█░█░█░█░█░█░
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0

Można też użyć ncurses, która jest przenośna.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.