c++-关于两次使用getline()只能输入一次的问题

问题描述

关于两次使用getline()只能输入一次的问题

用了两次getline()函数 调试的时候发现第一次根本没有接受输入直接返回ming字串为“”
而第二次可以输入一行字串以回车结束 是为什么呢??

 while (cin >> choice){
        if (choice == 1){
            cout << "输入明文:n";
            string ming;
            getline(cin, ming);
            cin.sync();
            cout << "输入密文:n";
            string mi;
            cin.sync();
            getline(cin, mi);
            string str = miyao(ming, mi);
            cout << "求出的密钥为:n";
            printstr(str);
        }
        ……
        }

解决方案

cin >> choice之后还有一个回车在缓冲区中。

解决方案二:

楼上说的很对,可以试试cin.ignore()语句清空缓冲区

时间: 2024-10-31 15:23:58

c++-关于两次使用getline()只能输入一次的问题的相关文章

js-文本框限制用户只能输入0---1.5之间的数字且最多允许两位小数

问题描述 文本框限制用户只能输入0---1.5之间的数字且最多允许两位小数 不知道什么原因,昨下午的提问竟然没有了,现在再重新请教各位前辈,有一个需求是希望用户只能在文本框中输入0至1.5之间的数字,并且最多允许两位小数, 该如何实现呢,谢谢各位 解决方案 下面是正则表达式: ^d+(.d{2})?$ d: 匹配数字 + : 数字出现1次以上 (.d{2})?:括号内是一个组,后面的?表示括号的内容出现0-1次 如果强制要求必须保留2位小数 就 将?改为+ 即 (.d{2})+ . : 匹配小数

只能输入数字还有 - *两个符号的正则表达式怎么写,求大神帮忙

问题描述 只能输入数字还有 - *两个符号的正则表达式怎么写,求大神帮忙 只能输入数字还有 - *两个符号的正则表达式怎么写 啊,求大神帮忙 解决方案 [-*0-9]* 字符组 解决方案二: ^[d-*]+$

JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数_正则表达式

第一: 限制只能是整数 <input type = "text" name= "number" id = 'number' onkeyup= "if(! /^d+$/.test(this.value)){alert('只能整数');this.value='';}" /> 如果不是整数就直接alert 第二: 限制是两位的小数 <input type = "text" name= "price&quo

javascript只能输入数字和小数点的文本框

只能输入数字和小数点的文本框 Html代码 <html>   <head>   <meta http-equiv="content-Type" content="text/html;charset=gb2312">   </head>   <body>   <!--把下面代码加到<body>与</body>之间-->   只能输入数字和小数点的文本框:<input

js 限制input只能输入数字、字母和汉字等等

 js 限制input只能输入数字小数点也不能输入或者是只能输入数字,能输小数点等等,本文大致整理了一些,感兴趣的朋友可以收藏下 代码如下: <input type="text"onKeyUp="this.value=this.value.replace(/[^.d]/g,'');if(this.value.split('.').length>2){this.value=this.value.split('.')[0]+'.'+this.value.split('

解析使用js判断只能输入数字、字母等验证的方法(总结)_javascript技巧

JS判断只能是数字和小数点0.不能输入中文1)<input onpaste="return false;" type="text" name="textfield" style="width:400px; ime-mode:disabled" value="">2)<script>function chkIt(frm){if (frm.n1.value.length>0&

html文本框只能输入数字

进行web前端开发,会经常遇到校验文本框内容的情形.比如校验用户输入的手机号是否合法. 其实我们可以从根本上减少用户犯错的机会,比如文本框只能输入数字,若输入非数字字符,则马上被删除. 界面:  第一个文本框,输入字母时会立即把字母替换为空字符串. 核心js方法: Js代码   /*   * 只能输入正整数,不能有小数点   *    */   onlyIntegerKeyUp=function(e){       if(e===undefined){           e=window.ev

c#-这两段代码,只能运行其中一段,想用if语句来判断,但不知道条件表达式该怎么写

问题描述 这两段代码,只能运行其中一段,想用if语句来判断,但不知道条件表达式该怎么写 foreach (Uers item in userGroup) //第一段 { Console.WriteLine("请输入账号"); string idC1 = Console.ReadLine(); Console.WriteLine("请输入密码"); string pwd1 = Console.ReadLine(); if (idC1.Equals(item.idC)

javascript-如何用Js实现文本框只能输入数字且只能输入1-15号数字,且大于15设值为15,小于1设值为1

问题描述 如何用Js实现文本框只能输入数字且只能输入1-15号数字,且大于15设值为15,小于1设值为1 如何用Js实现文本框 ①只能输入数字 ②只能输入1-15号数字 ③且大于15设值为15,小于1设值为1? ④不能支持粘贴操作, 原本用正则表达式表示为如下,只能实现仅输入两位数字,不能粘贴,不能输入其他数字以外字符 用正则实现了①④如何实现②③???? <input type="text" onkeyup="this.value=this.value.replace