Οι συναρτήσεις getchar και putchar στη C
Οι συναρτήσεις getchar και putchar στη C είναι ένα ζευγάρι συναρτήσεων, ειδικά σχεδιασμένων για την είσοδο/έξοδο χαρακτήρων. Η συνάρτηση getchar() δεν έχει ορίσματα και επιστρέφει τον επόμενο χαρακτήρα που δίνεται ως δεδομένο, ως εξής :
ch = getchar();
Η συνάρτηση putchar() εκτυπώνει το όρισμά της, ως εξής :
putchar(ch);
Οι συναρτήσεις getchar και putchar στη C – Παράδειγμα 1:
/* μετατροπή εισόδου, διατηρώντας τα κενά */ #include <stdio.h> #define SPACE ‘ ‘ main(){ char ch; ch = getchar(); /* διάβασε έναν χαρακτήρα */ while (ch != ‘\n’) /* αν δεν είναι το τέλος μιας γραμμής */{ if (ch == SPACE) /* άφησε το κενό */ putchar(ch); /* αμετάβλητος χαρακτήρας */ else putchar(ch + 1); /* άλλαξε τους άλλους χαρακτήρες*/ ch = getchar(); /* επόμενος χαρακτήρας */ } }
Οι συναρτήσεις getchar και putchar στη C – Παράδειγμα 2:
/* μετατροπή εισόδου, διατηρώντας τα κενά */ #include <stdio.h> #define SPACE ‘ ‘ main(){ char ch; while ((ch = getchar()) != ‘\n’) /* αν δεν είναι το τέλος μιας γραμμής */{ if (ch == SPACE) /* άφησε το κενό */ putchar(ch); /* αμετάβλητος χαρακτήρας */ else putchar(ch + 1); /* άλλαξε τους άλλους χαρακτήρες*/ } }
Τα προγράμματα αυτά επαναλαμβάνουν μια γραμμή εισόδου, αντικαθιστώντας κάθε χαρακτήρα εκτός του κενού, με τον επόμενό του ASCII χαρακτήρα. Τα κενά παραμένουν αμετάβλητα. Ένα αποτέλεσμα από τη χρήση των προγραμμάτων μπορεί να είναι το εξής :
C LANGUAGE VERY GOOD.
GMPSJOB QFS TFNQSF/
Η ευελιξία της C μας επιτρέπει να συνδυάσουμε την ανάγνωση και τον έλεγχο των δεδομένων εισόδου σε μία μόνο έκφραση.
Και αυτό το βλέπουμε στο δεύτερο πρόγραμμα και στην εντολή while ((ch=getchar())!=’\n’), όπου έχουμε σε μια έκφραση την καταχώρηση μιας τιμής στη ch και σύγκριση αυτής της τιμής με τον χαρακτήρα νέας γραμμής \n.
Αν δεν βάζαμε τις παρενθέσεις, τότε η πρώτη έκφραση που θα εκτελούσε ο compiler, θα ήταν η getchar()!=’\n’.