博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C/C++中peek函数的原理及应用
阅读量:6370 次
发布时间:2019-06-23

本文共 1667 字,大约阅读时间需要 5 分钟。

C++中的peek函数

  该调用形式为cin.peek() 其返回值是一个char型的,其返回值是指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的是文件结束符,则函数值是EOF(-1)。

  其功能是从输入流中读取一个字符 但该字符并未从输入流中删除  若把输入流比作一个 栈类 那么这里的peek函数就相当于栈的成员函数front 而如果cin.get()则相当于栈的成员函数pop。

  下面这段代码能帮助您更清晰地理解peek函数

1 /* istream peek */ 2 #include 
3 using namespace std; 4 int main () 5 { 6 char c; 7 int n; 8 char str[256]; 9 cout << "Enter a number or a word: ";10 c=cin.peek();11 if ( (c >= '0') && (c <= '9') )12 {13 cin >> n;14 cout << "You have entered number " << n << endl;15 }16 else17 {18 cin >> str;19 cout << " You have entered word " << str << endl;20 }21 return 0;22 }

C中的peek函数(自己写的)

 

1 char peek_char; 2  3 static char peek() 4 { 5     return peek_char; 6 } 7  8 static void * __Peek_loop_func(void *pInputArg) 9 {10     char tmp_char;11     while(1)12     {13         if(tmp_char=getchar())14         {            15             if((tmp_char!='\r')&&(tmp_char!='\n')&&(tmp_char!=0x0a))16             {17                 peek_char=tmp_char;18                 printf("Input Char === [%c] \n",peek_char);    19 20                 if(peek_char=='q')21                 {22                     printf("Jmp out from serial == 2 \n");23                     exit(1);24                 }25             }26         }27         usleep(1000*10);28     }29 }30 31 // 下面的代码放在主程序中,用来创建检测输入的线程.32 33 pthread_t tPeekThreadHandle;34 pthread_create(&tPeekThreadHandle, NULL, &__Peek_loop_func, NULL);

 

如何在主程序运行的同时检测串口的输入,比如输入"q",退出函数。原理就是创建一个新线程,来接收串口的输入,如果输入的第一字符为‘q’ 则退出程序,其实在退出的时候,我们也可以再捕获一下。

 

转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/7351846.html

你可能感兴趣的文章
java中final、finally、finalize区别
查看>>
数据库水平切分
查看>>
《深入实践Spring Boot》阅读笔记之一:基础应用开发
查看>>
微信支付
查看>>
常见面试之机器学习算法思想简单梳理
查看>>
thinkphp今天更新服务器位置,打开全空了
查看>>
国内几个免费CDN对比,适合你的才是最好的
查看>>
让变频电源IGBT安全运行的方法
查看>>
你所不知道的Python | 字符串连接的秘密
查看>>
K8S漏洞报告 | 近期bug fix解读&1.13主要bug fix汇总
查看>>
【开放平台】各平台相关API搜集&调用遇到问题一览表(Javascript版本)
查看>>
网传某厂商要求潜规则showgirl 经纪公司发声明澄清
查看>>
Apollo简介和源码搭建
查看>>
ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index...
查看>>
教你如何在博客园放“可运行"代码
查看>>
前后端分离-Rest Api设计
查看>>
一夜梦醒
查看>>
redis(9)、redis集群之redis Cluster使用
查看>>
spring-101-springAOP
查看>>
shell基础语法
查看>>