C语言中有没有类似C++中 cin.peek()的函数?
cin.peek()是“偷看”输入流的下一个字符,但是不把这个字符次哦能够输入流中删除。但是不把这个字符从输入流中删除1楼你的代码是从百度百科上直接复制过来的,在微软的编...
cin.peek()是“偷看”输入流的下一个字符,但是不把这个字符次哦能够输入流中删除。
但是不把这个字符从输入流中删除
1楼你的代码是从百度百科上直接复制过来的,在微软的编译器编译时会提示peek是未定义的标识符。 展开
但是不把这个字符从输入流中删除
1楼你的代码是从百度百科上直接复制过来的,在微软的编译器编译时会提示peek是未定义的标识符。 展开
7个回答
2011-02-18
展开全部
cin.peek(??????)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*****************************介绍********************************/
没有,但是可以通过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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询