C语言中有没有类似C++中 cin.peek()的函数?

cin.peek()是“偷看”输入流的下一个字符,但是不把这个字符次哦能够输入流中删除。但是不把这个字符从输入流中删除1楼你的代码是从百度百科上直接复制过来的,在微软的编... cin.peek()是“偷看”输入流的下一个字符,但是不把这个字符次哦能够输入流中删除。
但是不把这个字符从输入流中删除
1楼你的代码是从百度百科上直接复制过来的,在微软的编译器编译时会提示peek是未定义的标识符。
展开
 我来答
匿名用户
2011-02-18
展开全部
cin.peek(??????)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坤坤吃饭第一名
2019-01-20 · TA获得超过667个赞
知道小有建树答主
回答量:391
采纳率:66%
帮助的人:206万
展开全部

/*****************************介绍********************************/

没有,但是可以通过ungetc()函数达到相同的效果。

/******************************关于cin.peek()*****************************/

cin.peek()是从缓冲队列中探测并返回将要被读取的字符,但是它有不消耗掉这个字符。

比如,缓冲区队列第一个字符是'a',cin.peek()  的返回值就是字符a,但是a并没有从

缓冲区出列,任然在队首。这就是peek()的作用。

在C中,无论是getchar ,scanf都是会读取并消耗队首的字符的。

然而ungetc()函数却可以将一个字符送回指定的流队列中。

/********************代码实现*****************************/

下面这个函数就可以实现C++中的cin.peek()功能

int C_peek(void)
{
int c;    //使用int而不是char是因为可能会遇到EOF

c=getchar();    //读取队首字符,消耗了它 

ungetc(c,stdin);  //再将这个字符送回去,让他再次处于队首位置,待读。 

return c;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式