cin.get(ch)与ch = cin.get()的区别

cin.get(ch)和ch = cin.get()的区别

ch = cin.get() ;    //先调用cin.get()函数,然后将该函数的返回值赋给ch,语句的结果为ch的值。

cin.get(ch);    //在到达EOF值时,不会赋值给ch,ch只是接收输入字符。

二者的区别在一些经典的C++书籍《C++Primer Plus》中被总结成下表形式:

cin.get(ch)与cin.get()

属性    cin.get(ch)ch = cin.get()
传递输入字符的方式赋值给参数ch将函数返回值赋给ch
用于字符输入时函数的返回值   istream对象(执行bool转换后为true   )int类型的字符编码
到达EOF时函数的返回值istream对象(执行bool转换后为false   )EOF

一般使用cin.get(ch),因其更符合对象方式,返回值是istream对象,这意味着可以讲它们拼接起来:

cin.get(ch1).get(ch2);

举例解释:

下面两种你认为有问题吗(自):   另:getchar()这个函数是不带参数的吧?  不能这样写 getchar(ch),我试了下 报错了,但是putchar(ch) 这个是带参的,注意区分

char ch;

while((ch = cin.get() ) != EOF) {}    ---正确(因为cin.get()那几个重载函数里面,只有不带参数的返回值是int型,而EOF为 -1)

while(cin.get(ch) != EOF) {}            ---错误(因为带参数的cin.get() 的返回值是流对象,即iostream对象)

 

                                            

扫码关注本人微信公众号,有惊喜奥!公众号每天定时发送精致文章!回复关键词可获得海量各类编程开发学习资料!

例如:想获得Python入门至精通学习资料,请回复关键词Python即可。

 

JiandaoStudio
关注 关注
  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c++ 中的 cin.get()函数
digitalkee的博客
10-01 2万+
#include <iostream> #include <sstream> #include <fstream> using namespace std; int main() { char ch; ch = cin.get();//从标准输入接受一个字符 while(ch != ' ') //只要这个字符不是' '空格即可 { cout << ch <.
cincin.get()、cin.getline()、getline()的区别
热门推荐
a3192048的博客
05-14 8万+
测试平台g++ 5.4.0和VS2015社区版。 输入原理简述: 程序的输入都建有一个缓冲区,即输入缓冲区。每次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。 比如下面的例子: voidtest_i...
关于cin.get(ch)和ch=cin.get()在用法上需要注意的一点
linhx1999的博客
01-31 666
今天在码<C++ Primer Plus>的编程练习时,注意到了cin.get(ch)和ch=cin.get()在用法上有一点特别之处. 先说结论: cin.get(ch)和ch=cin.get()在一定情况下可以相互替换. 要特别注意的是优先级. 赋值运算符("=")的优先级小于逻辑运算符("&&“和”||"等). 首先先放出代码: #include<iostream> #include<cctype> using namespace std;
cin.get(ch)和ch = cin.get()的区别及适用场合
YZ的博客
03-05 5202
ch = cin.get() ;    //先调用cin.get()函数,然后将该函数的返回值赋给ch,语句的结果为ch的值。cin.get(ch);    //在到达EOF值时,不会赋值给chch只是接收输入字符。二者的区别在一些经典的C++书籍中被总结成下表形式:cin.get(ch)与cin.get()属性    cin.get(ch)ch = cin.get()传递输入字符的方式赋值给参...
C++中 cincin.get()、cin.getline()、getline() 的区别
最新发布
qq_58158950的博客
07-28 1147
cin.get() 和 cin.getline() 是输入流中的,使用之前需要包含头文件。cin 是输入输出流中的,使用之前需要包含头文件。getline() 是字符串流的,使用之前需要包含头文件。从标准输入读取单个或者是多个变量(以空格、制表符、换行符隔开),尤其是整型变量,或者从多行读取整型变量到数组,使用 cin。从标准输入读取单个字符,推荐使用输入流中的 cin.get()。从标准输入读取单行字符串、多行字符串的,推荐使用字符串流中的 getline()。
cin.get(),cin.get(ch),cin>>ch 的基本区别
hndu__lz的博客
01-25 1414
cin>>ch 读取字符将忽略空格,换行符,和制表符,而cin.get()则不 cin.get(ch)成员函数调用通过返回转换为false的bool值来指出已到达EOF,而cin.get()成员函数调用则通过返回EOF值来指出已到达EOF,EOF是文件iostream中定义的。
C++:cin.get()与cin.get(char &_Ch)
pnd237的博客
03-15 616
cin.get(char &_Ch) cin.get(char &_Ch):将输入的char赋值给ch;当检测到EOF时cin的eof方法返回true,fail方法返回true。 下面是一个使用cin.get(char &_Ch)来逐个读取输入字符的demo,当输入EOF时停止输入: char ch; while (cin.get(ch))//当输入EOF时跳出循环;cin对象会在需要返回bool值的时候转换为bool值,输入失败时自动返回false { cout <
基于C++ cincin.get()、cin.getline()、getline()、gets()函数的使用详解
09-05
// 或者 cin.get(ch); cout << ch ; ``` ```cpp char a[20]; cin.get(a, 20); cout ; ``` ```cpp cin.get(); // 没有参数,用于舍弃输入流中的不需要的字符 ``` 3. cin.getline() 函数 cin.getline() 函数可以...
c++中 cin,cin.getline(),cin.get()的区别
u010490289的博客
04-01 1019
cincin.getline和cin.get的整理
C++中cincin.get()、cin.getline()等函数用法详解
margaret522的博客
07-10 1万+
1.cin>> 1.1cin>>用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream> using namespace std; main () { int a,b; cin>>a>>b; cout<<a+b<<endl; } 输入:2[Enter]3[Enter] 输出:5 注意:>> 是会过滤掉不可见字符(如 空格 回车,TAB 等) 1.2cin...
ch=cin.get()和cin.get(ch)返回值问题
weixin_30432579的博客
11-20 420
cin.get()返回输入中的下一个字符。 cin.get(ch)返回一个对象,而不是读取的字符。 转载于:https://www.cnblogs.com/xueyoubao/p/9989761.html
cin.get()及cin.get(ch)
shuaiqidexiaojiejie的博客
08-31 133
【代码】cin.get()及cin.get(ch)
关于cincin.get()、cin.get(ch)返回值的问题
Schlangemm的博客
10-26 4748
1、cin、带参数与不带参数cin.get()的返回值问题 cin&gt;&gt;ch、和带参数的cin,get()返回的是cin对象,只在需要bool类型数据的地方返回bool类型的数据;而不带参数的cin.get()返回值是整型的字符编码,也就是说可以用ch=cin.get()来对输入的字符进行非bool类型的数据比较; 例:1)、while((cin&gt;&gt;ch)!=‘@’...
cin.get()的用法
LeoChaw
11-16 834
缓冲区还存着d,g,[Enter],如果之后又来一句cin.get(ch),会从里面接着取,还是一样的输入,a+s+d+f+[Enter],输出如下图所见。注意:上述例子中,比如当我输入任意字符+[Enter],包括[Enter]+[Enter]这种情况时,前一个字符会被输出,而后面的[Enter]并不会消失,而是被放在缓冲区,当又遇到一句cin.get(),这时候由于缓冲区不为空,不会从键盘获得输入,而是从缓冲区获取字符,获得就是[Enter]那么问题来了,如果我输入的是空格,或者回车呢?
cincin.get(), cin.getline( )
Echo_dia的博客
08-17 466
文章目录cincin.get( )cin.getline() cin 特点:忽略空格,回车符,Tab等不可见的符号;当且仅当回车后数据才会传入; 用法: //输入一个数 int k; cin >> k; // 输入,直到不满足条件 while(cin >> k) //某种操作 cout << k; 如,输入:1 2 3 4[enter] 输出:12...
有关cincin.get()、cin.get(ch)返回值问题
qq_43539984的博客
02-24 1141
1、cin、带参数与不带参数cin.get()的返回值问题 cin&amp;gt;&amp;gt;ch、和带参数的cin,get()返回的是cin对象,只在需要bool类型数据的地方返回bool类型的数据;而不带参数的cin.get()返回值是整型的字符编码,也就是说可以用ch=cin.get()来对输入的字符进行非bool类型的数据比较; 例: 1)、while((cin&amp;gt;&amp;gt;ch)!=‘@’)不合...
cin.get()和cin.get(ch)之间的区别
Java技术博文
06-20 3121
每次读取一个字符,直到遇到EOF的输入循环的基本设计如下: cin.get(ch); //attempt to read a char while(cin.fail()==false)  //test for EOF { .........   cin.get(ch);   //attempt to read another char } 可以在上述代码中使用一些简捷方式: wh
C++ cin.get()和cin.getline()方法详解及区别
Kellery
06-16 2437
一、cin.get(...) 该方法有四种常用的形式: int get(); //#1 istream& get(char& c); //#2 istream& get(char* s, streamsize n); //#3 istream& get(char* s, streamsize n, char delim); //#4首先讲解第一种形式:int ge
ch=cin.get()和cin.get(ch)
06-02
`ch=cin.get()` 和 `cin.get(ch)` 都是从标准输入流 `cin` 中获取一个字符的方法,不同之处在于: - `ch=cin.get()` 会从输入流中读取下一个字符,并将其赋值给变量 `ch`,同时返回该字符的 ASCII 码值。如果输入流...
写文章

热门文章

  • Matlab中meshgrid的用法简介 122825
  • 如何入门参与数学建模? 75087
  • C++实践项目一:学生信息管理系统(内附完整代码) 54831
  • Ubuntu终端打开文件及查看目录 38154
  • Visual Studio未能加载相应的Package包解决办法总结 35313

分类专栏

  • 嵌入式开发技术 51篇
  • C++ 2篇
  • 计算机视觉
  • NB-IOT 2篇
  • 网关技术 1篇
  • Matlab动画仿真 1篇
  • 智能算法 9篇
  • Windows 开发工具 3篇
  • 求职 5篇
  • JavaScript 1篇
  • 嵌入式 37篇
  • 网络安全 5篇
  • 《Python编程从入门到实践》 1篇
  • Django 1篇
  • 办公软件 1篇
  • App开发 36篇
  • Matlab 14篇
  • ROS视觉
  • ROS 1篇
  • Pycharm激活
  • 计算机等级考试 7篇
  • 学习心得 8篇
  • 通告 1篇
  • 电脑硬件 2篇
  • C++实践项目 2篇
  • Python实践项目 9篇
  • 算法 3篇
  • 浏览器 1篇
  • 职场规则 4篇
  • 大数据
  • 数据库学习资料
  • Java基础知识 6篇
  • 生活琐事 2篇
  • 商界故事 5篇
  • 数模建模 2篇
  • 图像识别 4篇
  • 5G通信 1篇
  • 计算机硬件
  • IOS专栏 1篇
  • Web开发 1篇
  • 语音识别 2篇
  • 云计算
  • QT

最新评论

  • 如何入门参与数学建模?

    【初久】星雨☆星晨: 感谢,有方向了,谢谢大佬

  • iOS系统开发入门至精通学习指南

    Nadeal: 不知道如今的博主是怎样的一个开发者了

  • 如何入门参与数学建模?

    weixin_75266376: 厉害(òωó)👍

  • Visual Studio未能加载相应的Package包解决办法总结

    _胡辣汤_: 这样你安装的插件全都没了

  • Visual Studio未能加载相应的Package包解决办法总结

    路过蜻蜓324: 第一种方法解决了,不过不知道 VS控制面板自带的修复能不能解决

大家在看

  • linux—基础命令及相关知识
  • 卷积编码器通过打孔(Puncturing)来修改码率
  • 约束长度、状态数以及清零过程背后的原理

最新文章

  • 嵌入式学习论坛公告
  • 华为的鸿蒙系统与谷歌的Android系统,究竟还有多大差距?
  • 2019 年经典Python 面试 100 问
2019年155篇
2018年31篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家江西玻璃钢雕塑厂家顺义商场美陈灯饰画安装江苏季节性商场美陈哪里有吉林动物玻璃钢雕塑图片玻璃钢雕塑效果怎样莱西玻璃钢卡通雕塑郑州玻璃钢雕塑制作cj河北玻璃钢花盆批发价格云南玻璃钢雕塑售价玻璃钢彩绘雕塑出售长沙玻璃钢仿铜雕塑玻璃钢雕塑性能滁州玻璃钢雕塑厂家金昌仿真人物玻璃钢雕塑多少钱四川玻璃钢花盆哪家好晋城校园玻璃钢景观雕塑定做商场美陈制作价格山西玻璃钢铜鹤雕塑横沥玻璃钢花盆花器大型透明玻璃钢雕塑云浮玻璃钢座椅雕塑报价贵州玻璃钢仿生雕塑阳泉玻璃钢雕塑陕西玻璃钢雕塑制作浙江玻璃钢花盆造型漳州玻璃钢卡通雕塑厂家直销湖南玻璃钢艺术小品景观雕塑四川特色商场美陈制造夏日商场美陈做什么好看武汉个性化玻璃钢雕塑哪家便宜香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化