永发信息网

关于C++的cin.get()的用法 问题在补充里

答案:2  悬赏:60  手机版
解决时间 2021-12-01 19:50
关于C++的cin.get()的用法 问题在补充里
最佳答案
你这程序的意思是,输入一个字符串,最长10位,如果输入错误,则直接退出,否则,当读到回车时,输出你输入的数据的前10位,再继续输入
这段代码的意思就是控制输入是程序设计者想要的内容,多余的信息忽略掉!追问看一下新的补充 输入大于10位也不会出错,程序会丢弃多余的字符追答这就是我上面说的:“控制输入是程序设计者想要的内容,多余的信息忽略掉!”

因为,一般情况下,程序的输入是程序设计者无法控制的,程序的操作者可能会输入的信息多余设计者想要的,因此,为了保证系统运行不出事故(如果你的字符串定义了10个字符的空间,而输入者输入了多余10个的字符,如果全接受,会造成数据越界,导致程序异常),经常会采用你写的这段代码的方式去避免错误。追问cin.get(next);
while(next!='\n')
cin.get(next);
这些操作不是很理解 为什么这个循环能实现丢弃余下的字符追答这段代码的意思是,先读一个字符next,然后,检查它是不是回车,如果不是,说明:有多余的数据在缓存中,将其读出来(还要读剩余所有不想要的,所以用while循环,直到读到回车),但是不做任何处理
这段代码,其实可以用一个命令进行处理:
在windows下,fflush(stdin);
这个命令就是清除缓存中的数据,以保证下次读取的时候,缓存是空的,只需要读键盘输入的内容。追问哦 谢谢追答不客气,希望你真的读明白了!追问哈哈 书上写丢弃我以为是删除的意思,原来是不做什么处理直接读到回车为止。追答o,yeah! 你读懂了,good luck
全部回答
cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
cin.get(字符变量名)可以用来接收字符
你的程序中cin.get(next)是用来判断是否输入换行符追问cin.get(字符数组名,接收字符数目)用来接收一行字符串
那为什么能作为输入?追答

就是从键盘接收

追问那cin.get(cin.get(字符变量名)可以用来接收字符)
为什么编译器不把它也认为是从键盘接收呢 是因为前面输入后已经有内容了吗追答因为cin.get()不丢弃缓冲区的换行符,第一次使用完cin.get()后换行符没有被抛弃,换行符被第二次的cin.get()给接受了追问嗯 懂了 谢谢
其实你们回答都很好,我就给先来的啦
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
贵州有种根颈类植物,名叫:杨和(读第一声)
🍀【求帮助】 [玫瑰][玫瑰]!考考你们
良姜与干姜的区别
心室颤动时初次直流电除颤的能量是多少
百世汇通今日,今天派件明天签收算是延误吗,
什么才算押韵 详细讲解
你知道为什么恋爱后女生会越爱越深吗
我们老家这边的土地以前是河涨起来的,下面可
脚的肌肉扭伤怎么办
知道好声音学员为什么都选汪峰不选杰伦吗
假设德国占领法国后停战
我想知道高庄馒头的做法
3600x2 = () ×100=()括号里应该添多少
我和左新伟谁厉害?谁更有气质?谁更帅?谁最
若()若()这样的词语有哪些
推荐资讯
960÷3÷8脱式怎么写图片
纯菜籽油的颜色是很黑的吗?
姐姐说自己穿的不好看而苦脑,怎么让姐姐开心
曹操传豪华版2014下部出了吗?给个地址。
醉眼看人间什么意思?
一首女声的英文歌,高潮英文汉译大约是,坎农
国外富商大佬为什么都喜欢买船买游艇
16GUSB在tcl液晶电视检测不到
怀化市沪荣工贸有限公司这个地址在什么地方,
单选题The murderer stood before
手纹是一条线过去的好吗?
生日快乐的英文翻译!happy的h是大写!!那b
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?