buf是什么?有什么作用?

fengwen_xxx 2007-11-25 03:16:39
#define BUFSIZ 100 //buf 缓冲区

char buf[BUFSIZ];
int bufp=0;

int getch(void)
{
return (bufp>0)?buf[--bufp]:getchar();
}

void ungetch(int c)
{
if(bufp>=BUFSIZ)
printf("ungetch:too many characters\n");
else
buf[bufp++]=c;
}


调用这个函数,数据如何传递?
...全文
2644 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengwen_xxx 2007-11-30
  • 打赏
  • 举报
回复
我还是知道getchar()的,但buf怎么会从键盘读入数据呢?
PcrazyC 2007-11-29
  • 打赏
  • 举报
回复
getchar();

这个函数是从键盘中读入
fengwen_xxx 2007-11-29
  • 打赏
  • 举报
回复
谢谢!

不过我自己找到了答案,一个更好的答案。

不过还没明白为什么会从键盘中读入。
羽中漫步 2007-11-25
  • 打赏
  • 举报
回复
buf模拟了一个栈,
getch相当于从栈顶取出一个字符,如果栈为空了,则从键盘读入一个字符.
ungetch相当于,把指定的一个字符存入buf,
buf[bufp++]=(char)c; 这样才标准.否则编译应该过不去.
PcrazyC 2007-11-25
  • 打赏
  • 举报
回复
BUF是一个数组,这好像是在模拟一个缓存区,如果缓存区中有数据,GETCH()就会直接读取,如果没有,就从标准输入设备输入

如果缓存区已满,就会提示"ungetch:too many characters",缓存区已满,无法输入,否则输入到缓存区

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧