关于C++的cin.get()的用法 问题在补充里
为什么cin.get(input,max)是输入而cin.get(next)就变成了读取还有cin.get(next);while(next!='\n')cin.get(...
为什么cin.get(input,max)是输入而cin.get(next)就变成了读取
还有cin.get(next);while(next!='\n') cin.get(next); 不是很理解
书上说 如果next是换行符,说明cin.get(intput,max)读取了整行;否则说明行中还有字符没有被读取,随后,程序用一个循环来丢弃余下的字符 我测试下来是对的
这几句不是很理解 原理是什么 展开
还有cin.get(next);while(next!='\n') cin.get(next); 不是很理解
书上说 如果next是换行符,说明cin.get(intput,max)读取了整行;否则说明行中还有字符没有被读取,随后,程序用一个循环来丢弃余下的字符 我测试下来是对的
这几句不是很理解 原理是什么 展开
2个回答
展开全部
你这程序的意思是,输入一个字符串,最长10位,如果输入错误,则直接退出,否则,当读到回车时,输出你输入的数据的前10位,再继续输入
这段代码的意思就是控制输入是程序设计者想要的内容,多余的信息忽略掉!
这段代码的意思就是控制输入是程序设计者想要的内容,多余的信息忽略掉!
更多追问追答
追问
看一下新的补充 输入大于10位也不会出错,程序会丢弃多余的字符
追答
这就是我上面说的:“控制输入是程序设计者想要的内容,多余的信息忽略掉!”
因为,一般情况下,程序的输入是程序设计者无法控制的,程序的操作者可能会输入的信息多余设计者想要的,因此,为了保证系统运行不出事故(如果你的字符串定义了10个字符的空间,而输入者输入了多余10个的字符,如果全接受,会造成数据越界,导致程序异常),经常会采用你写的这段代码的方式去避免错误。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询