MetallicA Δημοσ. 11 Φεβρουαρίου 2003 Δημοσ. 11 Φεβρουαρίου 2003 Poia einai h antistoixh entolh sthn C++ pou isxuei gia thn Pascal h repeat until keypressed?Trexw ta programmata pou ftiaxnw kai den prolabainw na dw ta apotelesmata.Nomizw xreiazetai kai kapoio header,to eixa brei paliotera alla twra logw megalhs apoxhs mou apo thn C ta exw ksexasei.Thanx in advance:)
GrMikeD Δημοσ. 11 Φεβρουαρίου 2003 Δημοσ. 11 Φεβρουαρίου 2003 #include "stdio.h" #include "conio.h" int main(int argc, char** argv) { do { printf("Hello\n"); } while (!kbhit()); printf("Press any key to exit"); getchar(); return 0; }
Dvs Δημοσ. 11 Φεβρουαρίου 2003 Δημοσ. 11 Φεβρουαρίου 2003 ostoso merikes fores menoun sto buffer merikoi xaraktires kai den stamataei. Iparxei tropos na apofeugetai auto? To exo kataferei me tin "cin.ignore (....)" alla prepei an mantepso ti exei to buffer i to posoi xaraktires einai sto buffer . Mipos iparxei pio aplos tropos?
MetallicA Δημοσ. 11 Φεβρουαρίου 2003 Μέλος Δημοσ. 11 Φεβρουαρίου 2003 Thn conio.h xrhsimopoiousa kai egw alla an thimamai htan apla mia entolh sto telos den xreiazotan kai h !kbhit.tha to psaksw kai egw ligo parapanw to bradu apo to spiti kai tha pw.Thanx pantws.Toylaxiston twra pou to xreiazomai gia na peiramatistw tha me boithisei.
nodreams.ct Δημοσ. 11 Φεβρουαρίου 2003 Δημοσ. 11 Φεβρουαρίου 2003 υπάρχει και η getche() νομίζω που δεν τυπώνει τον χαρακτήρα στην οθόνη.. δλδ να γράψεις > key=getche(); while(key!='a') { key=getche(); }
Directx Δημοσ. 12 Φεβρουαρίου 2003 Δημοσ. 12 Φεβρουαρίου 2003 ostoso merikes fores menoun sto buffer merikoi xaraktires kai den stamataei. Iparxei tropos na apofeugetai auto? To exo kataferei me tin "cin.ignore (....)" alla prepei an mantepso ti exei to buffer i to posoi xaraktires einai sto buffer . Mipos iparxei pio aplos tropos? -- DVS, Αν κατάλαβα καλά, θες να καθαρίζεις το Type Ahead buffer όπου αποθηκεύονται οι χαρακτήρες του πληκτρολογίου από το MS-DOS, σε μια τέτοια περίπτωση θα πρέπει να χρησιμοποιήσεις την ρουτίνα AH=0C (& AL=0Ah) του INT21..
Dvs Δημοσ. 12 Φεβρουαρίου 2003 Δημοσ. 12 Φεβρουαρίου 2003 hmmm ta interupts douleueoun sta XP? Oses fores dokimasa me inline asm den epiase kanena!
drm Δημοσ. 12 Φεβρουαρίου 2003 Δημοσ. 12 Φεβρουαρίου 2003 Βασικά η GetCh κάνει την δουλεία που θές. περιμένει να πατήσεις έναν χαρακτήρα. Η getChar δουλευει με buffer κα θα έχεις προβλήματα. Η getChe εμφανίζει τον χαρακτήρα (getCh e(cho)). Μπορείς να δοκιμάσει και με την cin που είναι καθαρή C++ αλλά δεν το έχω κάνει ποτέ. Τα interrupt σε περιβάλλων Win32 ???? μάλλον δεν είναι και τόσο απλό, χωρίς αν το έχω δοκιμάσει μπορεί να θέλει kernel mode, αλλά δεν το έχω δοκιμάσει οπότε μπορεί να σε τρομάζω άδικά
MetallicA Δημοσ. 13 Φεβρουαρίου 2003 Μέλος Δημοσ. 13 Φεβρουαρίου 2003 Thanx guys to douleuw me thn getch kai einai mia xara.Enan tropo apla na epalitheuw thn eksodo ithela,twra gia ta buffers ktl den me endiaferei kai polu,pros to paron toulaxiston.
Directx Δημοσ. 13 Φεβρουαρίου 2003 Δημοσ. 13 Φεβρουαρίου 2003 Dvs said: hmmm ta interupts douleueoun sta XP? Oses fores dokimasa me inline asm den epiase kanena! Τα περί Interrupts αφορούν το περιβάλλον DOS (τα χρησιμοποιούσα αρκετά εκείνη την εποχή για αυτό μου ήρθαν αυθόρμητα! --sorry), ευτυχώς η MS για την Console των Windows παρέχει τις ανάλογες εντολές GetNumberOfConsoleInputEvents και την FlushConsoleInputBuffer (σύμφωνα με το SDK) άρα (σε συνδυασμό με την GetStdHandle) ουδέν πρόβλημα..
nodreams.ct Δημοσ. 13 Φεβρουαρίου 2003 Δημοσ. 13 Φεβρουαρίου 2003 drm said: Η getChar δουλευει με buffer κα θα έχεις προβλήματα. Η getChe εμφανίζει τον χαρακτήρα (getCh e(cho)) Ναι έχεις δίκιο τα θυμόμουν ανάποδα <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/laugh.gif" alt="" />
Dvs Δημοσ. 13 Φεβρουαρίου 2003 Δημοσ. 13 Φεβρουαρίου 2003 I getch den iparxei! (toulaxiston den tin vriskei kai den tin deixnei sto help file!) btw, to forum exelinistike? <img src="http://www.insomnia.gr/ubbthreads/images/graemlins/smile.gif" alt="" /> Vlepo ta buttons exoun elliniko keimeno tora! thx gia ta replies
nodreams.ct Δημοσ. 13 Φεβρουαρίου 2003 Δημοσ. 13 Φεβρουαρίου 2003 βρήκα αυτό στο internet και δουλεύει, τώρα πως δουλεύει ακόμα το ψάχνω! >include <stdio.h> #include <string.h> #include <termio.h> #define BUFFER_MAX 1024 char getchvalue; struct termio save; int kbhit(void); char getch(void); void initscr(void); void endwin(void); int main() { char ch; char outbuf[BUFFER_MAX]; initscr(); while(1){ if(kbhit()){ ch=getch(); sprintf(outbuf,"got a '%c'\n",ch); write(1,outbuf,strlen(outbuf)); } if(ch=='q') break; } endwin(); } void endwin() { ioctl(0,TCSETA,&save); } void initscr() { struct termio term; if(ioctl(0,TCGETA,&term)==-1){ fprintf(stderr,"standard input not a tty\n"); exit(1); } save=term; term.c_lflag&=~ICANON; term.c_lflag&=~ECHO; term.c_cc[VMIN]=0; term.c_cc[VTIME]=0; ioctl(0,TCSETA,&term); } char getch() { return(getchvalue); } int kbhit() { char buffer[BUFFER_MAX]; int ifkeyin; ifkeyin=read(0,&getchvalue,1); return(ifkeyin); }
drm Δημοσ. 13 Φεβρουαρίου 2003 Δημοσ. 13 Φεβρουαρίου 2003 η getCh (getChe) υπάρχουν αλλά θέλουν ένα include, νομίζω το string.h
GrMikeD Δημοσ. 13 Φεβρουαρίου 2003 Δημοσ. 13 Φεβρουαρίου 2003 oi getch kai getche uparxoun sto conio.h To problima einai oti auto to header arxeio den einai C standard, einai platfor specific gia dos kai windows, kai sto linux den paizei. Diladi den einai global i lusi.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.