1

我有这个代码块来自我希望改进的输入类。目前它工作正常。

http://ideone.com/ryatJ

你像这样使用它......它的作用是传递对流的引用,对用户输入的引用和一个 int 来标记输入必须是的最大范围。usrinput 被引用,所以我们可以在其他地方使用它,它返回一个真假,所以我们可以像这样使用它......来获取输入......

while (!(validate(cin, returnval, a))){
        //# Error Code code here
    }

基本上一切正常.. 它要求用户输入一个我们期望作为 int 的数字。

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

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

基本上,如果您只是按 Enter 键而没有先输入 ANY 值,那么 cin 就会换行。有没有办法检测到用户只是按了回车键,所以我可以返回正确的错误消息并重新绘制菜单屏幕以及我想做的所有其他事情。?

夏天

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

感谢您的帮助--Jynks

编辑 - - -

我无法回答我自己的问题..但这就是答案...

我非常接近..但答案已经在我的代码中了....意味着 cin.peek() 正在查看流,目前它在将其读入变量后调用它。这意味着它看到了“第二个”字符以及测试工作的原因......我需要做的就是进行新的测试 b4 读取了 cin 并检查了第一个字符..

解决 了 http://ideone.com/mt7jH

4

0 回答 0