από sv1jsb » 15 Ιουν 2011, 21:09
Η getchar() παίρνει το input, αλλά δεν είναι αυτή που μετράει τους χαρακτήρες.
Η getchar παίρνει έναν χαρακτήρα την φορά. Όσο πληκτρολογεί ο χρήστης, και ο χαρακτήρας που πληκτρολόγησε δεν είναι ο EOF,
εκτελείται η επόμενη από το while εντολή, η ++nc.
Αυτή αυξάνει κάθε φορά (σε κάθε χαρακτήρα δηλαδή) την τιμή της nc (η οποία ξεκινά από μηδεν) κατά ένα.
Όταν ο χρήστης πατήσει EOF το while είναι FALSE και βγαίνει από το loop (χωρίς να εκτελέσει μια τελευταία φορά το ++nc).
Μετά το loop του while η printf εμφανίζει την τιμή της nc, η οποία έχει τιμή ίση με τους χαρακτήρες που πληκτρολογησε ο χρήστης.
Το EOF σημαίνει End Of File. Έχει διαφορετική τιμή σε διαφορετικά λειτουργικά. Στο Linux είναι η τιμή που δίνει αν πατήσει ο χρήστης
Control+D.
Το πρόγραμμα σου δεν θα τελειώσει δηλαδή αν δεν πατήσεις Control+D και θα σου μετράει και τα return (αν πατάς).
Φιλικά,
Ανδρέας
Programming blog Γνώσεις ⇛ Linux: Καλά ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 10.04 64bit
Προδιαγραφές ⇛ Phenom II │ 8GB │ 2xATI 5670 │ HD Audio │ TFT 23"