/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Jeg giver fortabt!
Fra : Flare


Dato : 13-05-02 23:08

Jeg vil lave en menu hvor man ikke behøver at bruge enter for at vælge. Da
jeg ikke kender andre metoder og skal kun bruge det på en win32 console har
jeg valgt at bruge getch() som modtager et tegn (og selv går vidre)
do
{
system("cls");
cout << "* Hovedmenu
*\n";
cout << " 1-> S\x9Bg p\x86 varenummer\n";
cout << " 5-> Afslut\n";

cout << "\nIndtast valg -> ";
valg=getch();

if (valg == '1')
{
Sqlobj.sogPaaVareNr();
}
while (valg != '5' );
-----
Classen::sogPaaVareNr()
{
char streng[30];
cin.getline(streng, 29, '\n' );
}
-----

Sådan noget ligende ser det ud. Det virker også fint første gang. Men når
jeg kommer tilbage fra søgpåvarenr() funktioen og igen taster 1 springer den
den cin.getline over i søgpåvarenr() funktioen!!! Altså den trykker enter
for mig på godt dansk.

Det er noget med at getch() får noget til at hænge i in bufferen , men jeg
kan jo ikke bruge cin.ignorer fx. Og cin.clear har ikke nogen effekt.
HJÆÆÆÆLP mig ;)

Jeg kan sgu ikke se hvad jeg gør galt. Er der alternativer til getch() men
som gør det samme? (nej vel?)

--
Anders
-----------------------------------
http://newbie.at/adkw
www.dct-team.dk



 
 
Claus Pedersen (14-05-2002)
Kommentar
Fra : Claus Pedersen


Dato : 14-05-02 11:40



Henrik Koksby Hansen (29-05-2002)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 29-05-02 15:12

> valg=getch();
>
> if (valg == '1')
> {
> Sqlobj.sogPaaVareNr();
> }
>while (valg != '5' );
>-----
>Classen::sogPaaVareNr()
>{
> char streng[30];
> cin.getline(streng, 29, '\n' );
>}
>-----
>
>Sådan noget ligende ser det ud. Det virker også fint første gang. Men når
>jeg kommer tilbage fra søgpåvarenr() funktioen og igen taster 1 springer den
>den cin.getline over i søgpåvarenr() funktioen!!! Altså den trykker enter
>for mig på godt dansk.
[...]

prøv evt. at tømme keyboardbufferen med

   fflush(stdin);


MVH
Henrik

Henrik Koksby Hansen (29-05-2002)
Kommentar
Fra : Henrik Koksby Hansen


Dato : 29-05-02 16:28

Øhmm... ups.. glem hvad jeg skrev tidligere. Det har
tilsyneladende ikke en pind med keyboardbufferen at gøre.

Men nu ved du hvordan den flushes, hvis du en dag får brug for det.


....

MVH
Henrik

Byrial Jensen (29-05-2002)
Kommentar
Fra : Byrial Jensen


Dato : 29-05-02 16:19

Flare <dct_flare@hotmail.com> skrev:

> while (valg != '5' );

Ovenstående er en uendelig løkke hvis valg er forskellig fra 5.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste