演習4-9 K&R プログラミング言語C
2010年01月17日
演習4-9
#include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFSIZE 100 static int buf[BUFSIZE]; /* ungetch 用のバッファ */ static int bufp = 0; /* buf 中の次の空き位置 */ static int getch(void); static void ungetch(int c); static void ungets(char s[]); int main(void) { char s[] = "hello, world."; int c; ungetch(EOF); ungets(s); while ((c = getch()) != EOF) { if ((putchar(c) < 0)) { exit(EXIT_FAILURE); } } return 0; } static int getch(void) /* (押し戻された可能性もある)1文字をとってくる */ { return (bufp > 0) ? buf[--bufp] : getchar(); } static void ungetch(int c) { if (bufp >= BUFSIZE) { printf("ungetch: too many characters\n"); } else if (c != EOF) { buf[bufp++] = c; } } static void ungets(char s[]) { size_t l = strlen(s); while (l > 0) { ungetch(s[--l]); } }
プログラミング言語C 第2版 ANSI規格準拠
posted with amazlet at 09.11.27
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
共立出版
売り上げランキング: 9726