Δημοσιεύτηκε: 25 Φεβ 2012, 15:29
από migf1
Πάντως όταν θέλεις να διαβάζεις ξεχωριστά ψηφία, μια εναλλακτική πρόταση του "%1d" που τα διαβάζει σαν μονοψήφιους ακέραιους, είναι να τα διαβάζεις ως χαρακτήρες, με "%c".

Π.χ...
Μορφοποιημένος Κώδικας: Επιλογή όλων
...
char d1, d2, d3; /* three digits, as characters */
printf('Enter a 3-digit integer: ");
mySCANF( "%c%c%c", &d1, &d2, &d3 );
printf( "%c%c%c\n", d1, d2, d3 );
...

Η βασική διαφορά είναι πως σου γλιτώνει μνήμη... ο κάθε χαρακτήρας καταλαμβάνει 1 byte μνήμης, ενώ ο κάθε ακέραιος καταλαμβάνει τουλάχιστον 2 bytes μνήμης (συνήθως 4... εκτός από τον τύπο char, για τους υπόλοιπους το στάνταρ καθορίζει ελάχιστες χωρητικότητες, το αφήνει δηλαδή ανοιχτό να καταλαμβάνουν περισσότερα bytes από ότι ορίζει το στάνταρ).