Saber_Rider Δημοσιεύτηκε Οκτώβριος 18, 2010 #1 Δημοσιεύτηκε Οκτώβριος 18, 2010 Γειά σας, χρειάζομαι βοήθεια στην C σε κάτι που δεν μπορώ να καταλάβω κάτι.... Έχω τον παρακάτω κώδικα: #include <stdio.h> int main(void) { char a, b; printf("Dwse to a: "); scanf("%c", &a); printf("\nEdwses %c\n", a); printf("Dwse to b: "); scanf("%c", &; printf("\nEdwses %c", ; return 0; } Κατά την εκτέλεση στην 1η scanf δίνω τον χαρακτήρα 'a' στην μεταβλητή a, τον οποίον και εμφανίζει η printf που ακολουθεί. Ύστερα εμφανίζεται το μήνυμα της 3ης printf και αμέσως μετά αντί να εκτελεστεί η 2η scanf για να δώσω τον χαρακτήρα που θέλω στην μεταβλητή b εκτελείται η τελευταία printf και δεν εμφανίζει φυσικά τπτ στην θέση της b. Εμφανίζει λοιπόν τα εξής: Dwse to a: a Edwses a Dwse to b: Edwses Γιατί δεν εκτελείται ποτέ η 2η scanf;; Ευχαριστώ!
Jaco Οκτώβριος 18, 2010 #2 Οκτώβριος 18, 2010 Γιατί παίρνει το "\r\n" από τον buffer του πληκτρολογίου όταν πατάς enter στην πρώτη scanf... η λύση είναι να χρησιμοποιήσεις την getchar ή να χρησιμοποιήσεις char arrays και "%s" στην scanf...
Myralis Νοέμβριος 2, 2010 #4 Νοέμβριος 2, 2010 Η να πεταξεις μια δευτερη scanf ίδια με την δευτερη από κάτω της..
Recommended Posts
Archived
This topic is now archived and is closed to further replies.