Problem Statement
Exercise 1-6: Verify that expression getchar() != EOF is 0 or 1.Solution
Lets us assign result of getchar() != EOF to a variable r, and print the integer value of it every time.#include <stdio.h> int main() { int c; int r; do { c= getchar(); r = (c != EOF); printf("c=%d, r=%d\n",c , r); }while(r); return 0; }
Output of the above program is
a c=97, r=1 c=10, r=1 b c=98, r=1 c=10, r=1 0 c=48, r=1 c=10, r=1 c=-1, r=0
Output needs some explanation -getchar() fetches one character from STDIO and returns it. When a and ENTER is pressed. First ASCII value of 'a' is assigned to c which is 97, since 97 !=0 r value is 1(true). Second character that getchar gets is ENTER key which is ASCII 10. When Ctrl-D is pressed which is EOF the loop is exited with r value as 0.
Links
Next Article - K&R Exercise 1.7 Value of EOFPrevious Article - K&R Exercise 1.5 Temperature conversion reverse order
All Article - K & R Answers
No comments :
Post a Comment