【问题标题】:Check if "cin" is a string检查“cin”是否为字符串
【发布时间】:2013-01-01 18:25:50
【问题描述】:

我正在编写一个简单的小脚本,我试图不允许人们输入字符串,或者如果他们确实让它再次恢复到函数的开头。这是我的输入代码:

int main()
{
    cout << "Input your first number" << endl;
    cin >> a;
    cout << "Input your second number" << endl;
    cin >> b;
}

这部分之外的其余代码可以正常工作,但如果在此处输入一个字符串,它显然不起作用。

任何帮助将不胜感激。

【问题讨论】:

  • 发布工作代码 - ab 未在此处声明。
  • ab的类型分别是什么?

标签: c++ string input int cin


【解决方案1】:

您可能会发现这篇文章很有用,

How to check if input is numeric in C++

基本上你可以检查输入,是否为数值。检查给定输入是否为数字后,您可以在 main 中添加一个 while 循环,如果输入不是有效数字,则要求用户重复。

【讨论】:

    【解决方案2】:

    每个输入都是一个字符串。如果您想知道输入的字符串是否可以转换为数字,您必须读取字符串并尝试自己转换(例如使用strol)。

    另一种方法是检查从 cin 读取是否失败,但我个人不喜欢它,因为 cin.fail() 涵盖的错误情况不仅仅是类型转换失败。

    【讨论】:

      【解决方案3】:

      有一个库函数可能会有所帮助,你可以输入后查看:

      int isdigit(char c);
      

      提示: 1.你应该包括这样的文件:

      # include <ctype.h>
      

      2.如果c在0~9,返回1;否则返回 0。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-28
        • 2013-03-05
        • 2014-04-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多