Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++控制台输入验证-在没有输入数据之前检测输入?_C++_Validation_Input - Fatal编程技术网

C++控制台输入验证-在没有输入数据之前检测输入?

C++控制台输入验证-在没有输入数据之前检测输入?,c++,validation,input,C++,Validation,Input,我希望改进输入类中的这段代码。目前它运行良好 你这样使用它。。。它需要传递一个对流的引用,一个对userinput的引用和一个int来标记输入必须达到的最大范围。usrinput被引用,所以我们可以在其他地方使用它,它返回一个true-false,这样我们就可以像这样使用它。。要获取输入 虽然validatecin,returnval,a{ //这里是错误代码 } 基本上一切都正常。。它要求用户输入一个我们期望的整数 使用if-cin>>int-我根据用户是否输入int得到一个true-fals

我希望改进输入类中的这段代码。目前它运行良好

你这样使用它。。。它需要传递一个对流的引用,一个对userinput的引用和一个int来标记输入必须达到的最大范围。usrinput被引用,所以我们可以在其他地方使用它,它返回一个true-false,这样我们就可以像这样使用它。。要获取输入

虽然validatecin,returnval,a{ //这里是错误代码 } 基本上一切都正常。。它要求用户输入一个我们期望的整数

使用if-cin>>int-我根据用户是否输入int得到一个true-false。所以任何字符串或任何东西。。。错误 使用>和<我们确保int在正确的范围内,否则它会出错。 使用peek检查流中是否有\n。。如果找不到。。这是错误的。所以2.2或2:34@3etc会出错

这一切都很有效,事实上我最近才注意到我还需要一个错误检查。虽然我不知道怎么做

基本上,如果您只需按enter键而不首先输入任何值,cin就会转到新行。有没有一种方法可以检测到用户只是按了回车键,而没有其他操作,这样我就可以返回正确的错误消息,并重新绘制菜单屏幕和所有其他我想做的事情

萨默里

我怎样才能在不输入任何其他值的情况下添加一个功能来检查是否按下enter键

谢谢你的帮助 -Jynks

编辑---

我不能回答我自己的问题。。但这就是答案

我非常接近。。但答案已经在我的密码里了。。。。这意味着cin.peek正在查看流,在它被读入变量后调用它。这意味着它看到了第二个字符,以及测试工作的原因。。。我所需要做的就是做一个新的测试b4,读取cin并检查第一个字符

解决

一个简单的开头瞥一眼不就行了吗?然而,我认为更好的解决方案是阅读完整的行并解析它。