08. maj 2002 - 10:56
Der er
11 kommentarer og 1 løsning
c++: getch() bliver i buffer og skrives ved cin (visual 6.0)
Hej, Jeg sidder med en consol app, hvor jeg bruger getch() for at læse et menuvalg. Derefter skal indlaæses en brugernavn, her bruger jeg cin >> men den char der tastes til getch() bliver vist, kan dette undgås ? (tømnig af buffer ?) pseudokode: valg = getch()-48; . . swtich (valg) . . cout << "Indtast... "; cin >> navn;
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
hvad koder du i ? jeg bruger visual c++ og det virker 100% #include <stdlib.h> #include <stdio.h> #include <time.h> #include <string.h> #include <conio.h> #include <iostream.h> int main(int argc, char* argv[]) { char navn[128], valg; valg = getch(); cout << "Indtast... "; cin >> navn; return 0; }
Jeg koder i visual c++ 6.0 med dit eks. får jeg en skærm der viser: Indtast...5 når jeg trykker på 5 før Indtastnig skal starte
bruger også visual 6 c++ (win2k). har du den nyeste service pack ?
Henter ! (jeg kører på win95 idag)
no good ! jeg får stadig tallet ud
hvis det kode jeg har skrevet ikke virker hos dig, kan jeg snart kun skubbe skylden på: 1. Ikke har rebuildet det hele 2. Ikke genstartet 3. Win95 :-) eneste fuske metode jeg har på lager er ignore: cin.ignore(1); (fjern 1 tegn fra buffer) Nogen andre der har idéer ?
cin.ignore(1); fjerne fra inputet men ikke fra skærmen
den skulle altså ikke skrive noget (getch). Du må fuske et eller andet :-) _getch, _getche Get a character from the console without echo (_getch) or with echo (_getche).
Hvad med while(!kbhit());
Prøv at tilføje: fflush(stdin); efter valg = getch();
En anden mulighed er cscanf #include <conio.h> int main(int argc, char* argv[]) { int c; char str[81]; printf("Press a key"); c = getch(); printf("\nYou pressed \'%c\'\n", c); printf("Enter something : "); cscanf("%s", str); printf("\nYou entered \"%s\"\n", str); return 0; }
Kurser inden for grundlæggende programmering