Δημοσιεύτηκε: 04 Ιουν 2011, 15:24
από migf1
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).