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;; Ευχαριστώ! Link to comment Share on other sites More sharing options...
Jaco Οκτώβριος 18, 2010 #2 Κοινοποίηση Οκτώβριος 18, 2010 Γιατί παίρνει το "\r\n" από τον buffer του πληκτρολογίου όταν πατάς enter στην πρώτη scanf... η λύση είναι να χρησιμοποιήσεις την getchar ή να χρησιμοποιήσεις char arrays και "%s" στην scanf... Link to comment Share on other sites More sharing options...
Saber_Rider Νοέμβριος 2, 2010 Author #3 Κοινοποίηση Νοέμβριος 2, 2010 Ευχαριστώ! Link to comment Share on other sites More sharing options...
Myralis Νοέμβριος 2, 2010 #4 Κοινοποίηση Νοέμβριος 2, 2010 Η να πεταξεις μια δευτερη scanf ίδια με την δευτερη από κάτω της.. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.