Mystirios Δημοσ. 30 Ιανουαρίου 2007 Δημοσ. 30 Ιανουαρίου 2007 Ξέρει ή μπορεί κάποιος να βρει το κώδικα της Char getchar(void) ? Βάσικα θέλω μια συνάρτηση παρόμοια της readkey της pascal ωστε με το που πατάω ένα πλήκτρο να διαβάζεται αυτό χωρίς να πρέπει να πατηθεί enter στη συνέχεια. Ακόμα πιο συγκεκριμένα το πρόβλημα μου είναι οτι η συνάρτηση επιστρέφει οτι χαρακτήρες πληκτρολογηθούν μέχρι να πατηθεί enter αλλά επιστρέφει και το enter το οποίο μου δημιουργεί πρόβλημα.
chiossif Δημοσ. 30 Ιανουαρίου 2007 Δημοσ. 30 Ιανουαρίου 2007 Μήπως ψάχνεις αυτό: > #include "syscalls.h" /* getchar: unbuffered single character input */ int getchar(void) { char c; return (read(0, &c, 1) == 1) ? (unsigned char) c : EOF; } Θα το βρεις πλήρες στο κεφάλαιο 8 παράγραφος 2 του K&R "Η γλώσσα Προγραμματισμού C". Ελπίζω να κάνεις την δουλειά σου διότι δεν ξέρω ακριβώς τι κάνει η readkey που αναφέρεις. Τώρα, αν μιλάμε για UNIX-Linux και θέλουμε ΠΛΗΡΗ ΕΛΕΓΧΟ του τερματικού θα πρέπει να ρίξεις μια ΚΑΛΗ ματιά στο κεφαλαιο 6 παράγραφος 4 του βιβλίου K&P"Το περιβάλλον προγραμματισμού UNIX".
alkisg Δημοσ. 30 Ιανουαρίου 2007 Δημοσ. 30 Ιανουαρίου 2007 Το enter μπορείς να το αγνοήσεις, δεν είναι πρόβλημα. Η readkey επιστρέφει κι αυτή το enter. Η βασική της διαφορά με την getchar είναι το πρώτο που είπες, ότι μπορεί να διαβάσει π.χ. ένα 'a' χωρίς να χρειάζεται να πατηθεί enter, κι έτσι μπορεί π.χ. να τη χρησιμοποιήσεις σε παιχνίδια για να μετακινήσεις τα τουβλάκια του Tetris. Αν θυμάμαι καλά, γιατί πάει πολύς καιρός από την τελευταία DOS εφαρμογή που έκανα, αντίστοιχες της readkey στη C είναι η getch() και η getche(). http://www.delorie.com/djgpp/doc/libc/libc_385.html http://www.opengroup.org/onlinepubs/007908775/xcurses/getch.html
Pantelwolf Δημοσ. 31 Ιανουαρίου 2007 Δημοσ. 31 Ιανουαρίου 2007 Μπορείς να χρησιμοποιήσεις και την getch() που βρίσκεται στο "conio.h" αλλά δεν λειτουργεί σε όλες τις διανομές (πχ. Σε BorlandC++ και MS δουλεύει αλλά σε Dev χρειάζεται enter)
PATRINOS06 Δημοσ. 31 Ιανουαρίου 2007 Δημοσ. 31 Ιανουαρίου 2007 επισης η conio.h δεν λειτουργει σε περιβαλλον unix
alkisg Δημοσ. 31 Ιανουαρίου 2007 Δημοσ. 31 Ιανουαρίου 2007 Στο δεύτερο link που έδωσα λέει για τη getch σε Linux.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.