Δημοσιεύτηκε: 04 Ιουν 2011, 15:24
Ntelispak έγραψε:Μια εναλλακτική για το πρόβλημα με το πρόγραμμα θα ήταν να χρησιμοποιηθεί
- Κώδικας: Επιλογή όλων
buffer[50];
memset(buffer,'\0',50);
scanf("%s", buffer);
strcmp(buffer,"y")
Προσοχή: αν ο χαρακτήρας εισόδου είναι πάνω από σαράντα εννιά χαρακτήρες τότε υπάρχει πρόβλημα.
[snip]
Ή ακόμα κι έτσι...
- Κώδικας: Επιλογή όλων
buffer[50] = { 0 };
scanf("%s", buffer);
strcmp(buffer,"y");
αν και όπως εξηγώ και στο προηγούμενο post, και οι 2 αυτοί τρόποι είναι overkill για απλό διάβασμα χαρακτήρα!
Τουλάχιστον το...
- Κώδικας: Επιλογή όλων
if ( !strcmp(buffer, "y") )
θα μπορούσε να αντικατασταθεί με το σαφώς ταχύτερο:
- Κώδικας: Επιλογή όλων
if ( *buffer == 'y' ) // εναλλακτικά: if ( buffer[0] == 'y' )
αλλά και πάλι, όταν θέλουμε να διαβάσουμε απλά ένα χαρακτήρα δεν βρίσκω για ποιον λόγο να τον διαβάζουμε ως string (πόσο μάλιστα να τον συγκρίνουμε και ως string).