開発環境
- OS X Lion - Apple(OS)
- Emacs、BBEdit - Bare Bones Software, Inc. (Text Editor)
- プログラミング言語: C
- Clang (コンパイラ)
プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)の第4章(関数とプログラム構造)4.3(外部変数)の演習4-7を解いてみる。
その他参考書籍
- プログラミング言語Cアンサー・ブック 第2版 (クロビス・L.トンド、スコット・E.ギンペル(著)、矢吹 道郎(翻訳))
演習 4-7.
コード
sample.c
#include <stdio.h>
int main()
{
int c;
void ungets(char []);
int getch();
ungets("python\n");
while ((c = getch()) != '\n') {
putchar(c);
}
putchar('\n');
return 0;
}
#define BUFSIZE 100
char buf[BUFSIZE];
int bufp = 0;
int getch(void)
{
return (bufp > 0) ? buf[--bufp] : getchar();
}
void ungetch(int c)
{
if (bufp >= BUFSIZE) {
printf("ungetch: too many characters\n");
} else {
buf[bufp++] = c;
}
}
#include <string.h>
void ungets(char s[])
{
int len;
void ungetch(int);
len = strlen(s);
while (len > 0) {
ungetch(s[--len]);
}
}
入出力結果(Terminal)
$ ./a.out python $
0 コメント:
コメントを投稿