c++ cin.peek() 在java queue poll peek怎么用

C++语言中,cin.get()与cin.peek()是什么功能啊??_百度知道
C++语言中,cin.get()与cin.peek()是什么功能啊??
提问者采纳
指针仍停留在当前位置。如果要访问的字符是文件结束符;&Entecin,并不后移;int main () {/main (){&cout && && &quot.get(字符变量名)可以用来接收字符#include &lt.get(a;) ){cin &gt.get(); &cout &lt:abcdeabcdeabcdeabcd
(接收19个字符+1个&#39,接收字符数目)的不足;&lt。下面这段代码能帮助您更清晰地理解peek函数/endl,其返回值是指针指向的当前字符;cout&using namespace std.get()用法1;}else{cin &0&#39: &&lt,或者舍弃回车:jkl jkl jkl输出;You have entered number &cout &cout&lt.get(ch):j用法2;&lt,但它只是观测,可以接收空格#include &lt,弥补&9&#39:}输入.get()则相当于栈的成员函数pop.get(字符数组名;&gt:}输入;& istream peek#include & You have entered word &quot,20); &iostream&)用法3。其功能是从输入流中读取一个字符 但该字符并未从输入流中删除若把输入流比作一个 栈类
那么这里的peek函数就相当于栈的成员函数front 而如果cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符;&&iostream&gt,则函数值是EOF(-1); endl:ch&lt,接收字符数目)用来接收一行字符串.peek():jkl jkl jkl输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)输出;}return 0;0' str &&;= ') && (c & n & &c=iostream&gt:jljkljkl输出;main (){char a[20].peek()
其返回值是一个char型的字符;if ( (c &char str[256];ch=\a&= '或者
&#47.get(字符数组名.cin
就是说一个是读取,删除一个是读取,不删除?
可以这样简单理解
提问者评价
其他类似问题
为您推荐:
cin的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁2922人阅读
我朋友总是跟我说,C++是C的阉割版,我不反对,也不赞同。
最近项目中,遇到一个问题,就是如何在主程序运行的同时检测串口的输入,比如输入&q&,退出函数。
同事推荐用C++的Peek函数,可是我从进入工作以来,在Linux项目中全部使用的是C,唯一知道去的输入的就是getchar()了.
下面首先看看C++中的Peek函数(贴自百度百科):
C++中的peek函数
  该调用形式为cin.peek() 其返回值是一个char型的,其返回值是指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的是文件结束符,则函数值是EOF(-1)。
  其功能是从输入流中读取一个字符 但该字符并未从输入流中删除  若把输入流比作一个 栈类 那么这里的peek函数就相当于栈的成员函数front 而如果cin.get()则相当于栈的成员函数pop。
  下面这段代码能帮助您更清晰地理解peek函数
/* istream peek */
#include &iostream&
int main ()
char str[256];
cout && &Enter a number or a word: &;
c=cin.peek();
if ( (c &= '0') && (c &= '9') )
cout && &You have entered number & && n &&
cout && & You have entered word & && str &&
C中的peek函数(自己写的)
char peek_
static char peek()
return peek_
static void * __Peek_loop_func(void *pInputArg)
if(tmp_char=getchar())
if((tmp_char!='\r')&&(tmp_char!='\n')&&(tmp_char!=0x0a))
peek_char=tmp_
printf(&Input Char === [%c] \n&,peek_char);
if(peek_char=='q')
printf(&Jmp out from serial == 2 \n&);
usleep(1000*10);
// 下面的代码放在主程序中,用来创建检测输入的线程.
pthread_t tPeekThreadH
pthread_create(&tPeekThreadHandle, NULL, &__Peek_loop_func, NULL);
原理就是创建一个新线程,来接收串口的输入,如果输入的第一字符为‘q’ 则退出程序,其实在退出的时候,我们也可以再捕获一下。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:659746次
积分:8580
积分:8580
排名:第1375名
原创:193篇
转载:124篇
评论:78条
(2)(1)(1)(1)(2)(1)(1)(2)(4)(10)(6)(13)(14)(29)(40)(19)(21)(10)(2)(7)(18)(4)(2)(11)(5)(14)(6)(9)(12)(5)(9)(28)(8)c++中怎么用cin实现不输入任何东西时,按回车,退出循环?_百度知道
c++中怎么用cin实现不输入任何东西时,按回车,退出循环?
按回车..}当不输入任何东西时char ch[4].;&ch){while(cin&gt
using namespace std:&&gt!='n'void main(){char ch[4]; cin&请输入ch[];ch&&\&while((c=getchar());){ cout& cout&&;&lt#include&iostream&gt
其他类似问题
为您推荐:
其他5条回答
scanf(&ch){n'&#92, &c);
if(c == &#39while(cin&gt
while (true){ cout && &'enter someting you want ' ('enter' to exit) : &;
if ((cin.peek() == EOF) || (cin.peek() == '\n')) {
} //do something you want to do
cin.sync(); cin.clear();}
貌似cin不行吧,用getchar();就可以了。
把程序贴出来
cin的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁2331人阅读
c++学习(52)
l&&&&&&PeekMessage
此函数检查一个线程消息队列中消息,如果消息存在,放置消息到指定的MSG结构体中。
BOOL PeekMessage(
& LPMSGlpMsg,
& HWND hWnd,
& UINT wMsgFilterMin,
& UINT wMsgFilterMax,
& UINT wRemoveMsg
指向从线程的消息队列接收消息的MSG结构体。
&&&&&& 需要检索消息的窗体句柄。
wMsgFilterMin
&&&&&& 指定被检索的最小消息值的整数。
wMsgFilterMax
&&&&&& 指定被检索的最大消息值的整数。
wRemoveMsg
指定消息如何处理。参数如下:
PM_NOREMOVE
PeekMessage处理之后消息不需要从消息队列中移除
PeekMessage处理之后消息需要从消息队列中移除。一个特别即是WM_PAINT消息,它不能从消息队列中移除。
返回值
如果有一个消息适合,函数返回非0.
如果没有消息适合,函数返回0.
与GetMessage不同的是,PeekMessage函数不会等到有消息放入队列时才返回。
PeekMessage函数检索由hWnd参数标识的和窗体关联的,或者由IsChild函数指定的它们的子窗体,并且在wMsgFilterMin和wMsgFilterMax参数指定的消息范围之间消息。如果hWnd为NULL,则PeekMessage获取属于调用该函数应用程序的任一窗口的消息(PeekMessage不会获取属于其他线程的窗口消息),如果hWnd=-1,那么函数只返回把hWnd参数为NULL的PostTreadMessage函数送去的消息。如果wMsgFilterMin和wMsgFilterMax都是0,则PeekMessage就返回所有可得到的消息。
用WM_KEYFIRST和WM_KEYLAST常量作为过滤器去获取所有键盘消息;用WM_MOUSEFIRST和WM_MOUSELAST常量作为过滤器区域获取所有的鼠标消息。
函数获取之后将删除消息队列中的除WM_PAINT消息之外的其他消息,至于WM_PAINT则只有在其处理之后才被删除。&
在创建应用程序最高级别的窗口之前调用PeekMessage会导致创建的窗口在z序列后面,因此需要显示的调用SetForegroundWindow函数显示此窗口。如果应用程序已经有一个窗口在前景,新创建的窗口仍会在前景创建。
l&&&&&&WaitMessage
当一个线程没有消息在其消息队列中的时候,线程放弃控制权给其他的线程。WaitMessage函数挂起线程,直到一个新的消息被放入线程的消息队列中才返回。
BOOL WaitMessage(VOID);
返回值
&&&&&& 如果函数执行成功,返回非0.
&&&&&& 如果函数执行失败,返回值为0,调用GetLastError函数获得详细错误信息。
&&&&&& 线程在调用一个函数核查线程消息队列后,如果消息队列中没有可读的消息,WaitMessage函数不会返回。这是因为PeekMessage、GetMessage、GetQueueStatus、WaitMessage、
MsgWaitForMultipleObjects和MsgWaitForMultipleObjectsEx这样的函数核对消息队列,改变队列的状态信息这样输入不再被认为是新的。如果连续调用WaitMessage将等到指定类型的新输入到达后才返回。已存在的未读过的输入(在上次线程检查队列之前接收的)被忽略。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:619278次
积分:7143
积分:7143
排名:第1876名
原创:146篇
转载:19篇
评论:85条
(1)(1)(1)(1)(1)(1)(2)(1)(3)(1)(2)(1)(3)(3)(2)(7)(3)(12)(14)(15)(3)(2)(5)(1)(7)(1)(2)(1)(1)(1)(1)(1)(3)(6)(3)(16)(9)(12)(19)(5)

我要回帖

更多关于 java stack peek 的文章

 

随机推荐