问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

菜鸟提问,关于getch()与ungetch()函数!16

发布网友 发布时间:2023-10-21 11:50

我来回答

2个回答

热心网友 时间:2024-12-01 07:38

K&R 里的getch()和unget()函数其实是模拟了stdio.h里的getc() 和ungetc()
数据在输入输出时 要经过一个叫做缓冲区(buffer)的地方
原来缓存那些数据
当调用getc()的时候 标准输入里的一个字符会被放入缓冲区中
再把缓冲区里的字符赋到变量里
当调用ungetc(c)的时候 作为程序参数的那个字符c会被回放到缓冲区中 (压回输入中)

给你个例子
c = getc(stdin);
c = getc(stdin);
ungetc(c, stdin);
c = getc(stdin);
printf("%c\n", c);
这段程序运行时
输入"abc"
程序会先读入'a'
再读入下一个字符'b'
然后把'b'放回缓冲区中
然后再读入...这时读入的是缓冲区里的'b'
所以三次读入 但最后输出的是'b'
你可以自己实验一下

热心网友 时间:2024-12-01 07:38

请把主要的调用这2个函数的代码贴出来看看,否则这样看
只是表示getch()是从buf中取字符,如果buf为空,则取当前字符缓冲中的第一个字符
ungetch则是放字符到buf中,放满了则提示"ungetch: too many char characters\n)"
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
imba里能抽到什么好装备 DOTA IMBA神器抽奖抽到几率和大野爆的几率。还有小鸡无限眼的BUG能不能... 《魔兽世界》怀旧服玩具获取方法 求最好的手机杀毒软件 手机杀毒软件哪个好用 2023年最旺女孩名字有草有水296个 我的世界红石电梯怎么制作 怎么用微信申请微信号? 有些网页不能复制,可我想要复制下来,该怎么弄啊? 电脑网址怎么保存电脑怎么收藏网址 怎么办,还是最想去土耳其? 怎样用一张手机卡申请多个5 一张手机卡只能注册一个吗?9 人的味觉和动物一样随着年龄的变化退化吗 为什么人的味蕾的数量会随着年龄改变?8 一个手机两个卡,第一个卡申请过一个,第二个卡怎么申请微...400 菜鸟提问。什么叫渐层啊?2 狮子属于什么科动物,到底是猫科还是犬科啊?4 嗨课堂到底是一个什么样的机构? 随着年龄的增长,人的味觉是不是也会发生变化1 狮子是犬科还是猫科?586 一张手机卡只能注册一个吗?9 用加点词语造句:如果你在夜晚听见草地里的歌声你的歌声你就一定...39 一张手机卡可以申请几个28 一个手机二张卡,想要二个,怎么申请? 一个人的味觉会随着年龄而变化吗?5 ...我在睡觉没回复他,他说我跟那个野男人玩呢,还说我有别人了就赶紧分... 为什么我的男朋友一直都不相信我 还说我找野男人 两个自然数的和是52,它们的最大公因数是4,最小公倍数是14...108 什么是动力混合气,什么是经济混合气34 明星和演员的区别是什么?23 随着年纪的增大,味觉和嗅觉的敏感性会下降吗? 狮子为什么是猫科动物而不是犬科动物?206 怎样申请多个?135 汽车菜鸟提问:这是啥 佛学中所谓的“圆融”的境界是什么意思?请描述一下。要如何修行才能达到... 怎样申请多个?139 舌头上的味蕾为什么会随着年龄增长而减少? 菜鸟提问!~~!~ 一张手机卡能注册几个550 这个淘宝分组怎么弄? 一个手机两个卡,第一个卡申请过一个,第二个卡怎么申请微...400 怎样用一张手机卡申请多个5 两个自然数的最大公因数是12,最小公倍数是72。这两个自然数...13 如何在两部手机同时登陆一个? 如何在两部手机同时登陆一个?1 怎样申请多个?135 怎样可以让两部设备手机同时登录一个 如何同时在两部手机上,登陆一个一↗? 怎样可以让两部设备手机同时登录一个? 中考前的一模二模是什么意思、干什么用的148