Strona 1 z 1

Wczytanie klawiszy c++

: 28 sie 2008, 16:23
autor: mozg07
Mam napisany pewien program (konsolowy). Chciałbym, aby był wygodniejszy w użytku.
Mam na początku menu. I do wyboru kilka opcji (na zasadzie: 1- opcja 1, 2- opcja 2, itd).
W tym momencie muszę wcisnąć odpowiednią cyfrę (bądź literę) i zatwierdzić enterem.
Czy da się jakoś ominąć ten enter. Jest on chwilami bardzo uciążliwy...

Dużo w google szukałem i nie znalazłem odpowiedzi, która by u mnie działała. Ponoć w ncurses.h jest getch(), ale u mnie to cały czas zwraca -1. :(

Odp: Wczytanie klawiszy c++

: 28 sie 2008, 17:09
autor: youlleck
getch() jest w conio.h a nie w ncurses.

Kod: Zaznacz cały

char a;
a=getch();
wszystko powinno dzialac.

Odp: Wczytanie klawiszy c++

: 28 sie 2008, 18:17
autor: fox_masters
youlleck pisze:getch() jest w conio.h a nie w ncurses.
youlleck nie wprowadzaj forumowiczów w błąd. Mówimy o programowaniu pod linuxem, a nagłówka conio.h jak pewnie wiesz (lub nie):-) pod tym systemem nie uświadczysz.

Odp: Wczytanie klawiszy c++

: 28 sie 2008, 18:42
autor: youlleck
ajjjj wybaczcie, moj blad :)

Odp: Wczytanie klawiszy c++

: 28 sie 2008, 19:37
autor: mozg07
youlleck pisze:getch() jest w conio.h a nie w ncurses.

Kod: Zaznacz cały

char a;
a=getch();
wszystko powinno dzialac.
Tak, to wiem. Ale w ncurses również jest, tylko tak jakoś nie chce mi działać tak jakbym chciał. Pod linuxem nie ma conio, o nim również wiem (pod windowsem też trochę programowałem- to mi działało tam).

Odp: Wczytanie klawiszy c++

: 04 wrz 2008, 22:29
autor: shargath
O ile dobrze pamiętam można dać

Kod: Zaznacz cały

#include <iostream>
a potem używać

Kod: Zaznacz cały

std::cin >> a;
mam nadzieję że pamięć mnie nie myli.
Pozdrawiam

Jednak trochę się myliłem bo można więcej niż jeden znak wprowadzić oczywiście więc zamiast tego można

Kod: Zaznacz cały

cin.get()

Odp: Wczytanie klawiszy c++

: 04 wrz 2008, 23:02
autor: Struchu
Z tym że to nadal będzie wymagało zatwierdzania enterem. Mózgu: skorzystaj z funkcji raw() (która przestawia terminal w tzw. tryb surowy - znaki wprowadzane z klawiatury nie będą buforowane aż do otrzymania znaku nowej linii, tylko od razu będą przesyłane do Twojego procesu - oczywiście jest to funkcja z ncurses, żeby nie było ;) ).

Odp: Wczytanie klawiszy c++

: 31 sty 2011, 17:40
autor: pixelenter
mozg07 pisze:Tak, to wiem. Ale w ncurses również jest, tylko tak jakoś nie chce mi działać tak jakbym chciał. Pod linuxem nie ma conio, o nim również wiem (pod windowsem też trochę programowałem- to mi działało tam).
A zrobiłeś na początku initscr? Jak nie to gdziś przed funkcją powinno być initscr() a po endwin(). Jeżeli już piszesz w ncurses to najlepiej zrób całe w ncurses(Może wyjść ci naprawdę szpanerski interface al'a np. mc). Jeżeli nie ncurses to pozostaje stare dobre

Kod: Zaznacz cały

std::cin.get(); 
zwracające znak. Jednak jak już i tak ma być menu to polecam ncurses ;)
PS.
Sory za odkop. Google :x