/* 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();
}