/* EXERCISE 2-2 */ /* THE NEW LOOP MUST ALSO ACCOUNT FOR THE VALUE OF i AT THE END. */ /* TEST BY TYPING TWO LINES OF DATA: ONE DELIMITED BY '\n', THE */ /* OTHER BY EOF. */ #include <stdio.h> #define MAXLINE 15 /* A SMALL NUMBER FOR TESTING */ int c, i, lim, stop; enum boolean {NO, YES}; char s[MAXLINE]; void prtline(void); main() { lim = MAXLINE; /* FIRST LOOP */ for (i = 0; i < lim - 1 && (c = getchar()) != '\n' && c != EOF; ++i) s[i] = c; prtline(); printf("\nFIRST LOOP FINISHED\n"); /* SECOND LOOP */ i = 0; stop = NO; while (stop == NO) { stop = YES; if (i < lim - 1) if ((c = getchar()) != '\n') if (c != EOF) { s[i] = c; ++i; stop = NO; } } prtline(); printf("\nEND OF PROGRAM\n"); return 0; } /* PRTLINE: PRINT OUT LAST ARRAY LINE, SKIP INPUT BEYOND MAXLINE */ void prtline(void) { if (c == '\n') { s[i] = c; ++i; } s[i] = '\0'; printf("%s", s); while (c != '\n' && c != EOF) c = getchar(); }