在标准输入中接受字符串时检查特定整数

时间:2014-09-29 01:11:31

标签: c++ visual-studio visual-c++

cout<< " \ n输入降雨数据的文件名(或-1退出):&#34 ;;

如何同时允许int和字符串输入?

我有一个带有字符串类型的对象,并已从用户接受它以该表单形式。但是,我还必须测试是否输入了-1。我有点困惑,因为我如何为字符串分配一个整数值?

我们尚未学会如何使用sstream,因此将字符串转换为int不是解决方案。

我尝试了以下内容:

    cin >> externalFile;

        if (externalFile = -1) {

     // evaluate condition...
      }

我也尝试过串联和谷歌。 需要一些关于使用什么工具和我出错的地方的指导 谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

对表示连字符的字符串和1“-1”进行字符串比较,如下所示:

If( "-1" == externalFile){

}

答案 1 :(得分:0)

你的错误是你正在重新初始化externalFile的价值。 您的代码中发生的是您获取externalFile的值,然后说出externalFile现在是-1执行此操作。问题是这改变了布尔表达式, 如果我没记错的话,这个陈述总是假的,因为-1在0或更低的类别中,如果它是1或更高,它总是会评估为真。

    cin >> externalFile;

        if (externalFile == -1) {

     // evaluate condition...
      }

您还尝试将externalFire与整数进行比较 你根本做不到这一点。

要解决此问题,您只需将externalFile创建为字符串,如下所示:

更正版本:

cin >> externalFile;

        if (externalFile == "-1") {

     // evaluate condition...
      }

答案 2 :(得分:0)

您可以做的是将输入作为字符串读取,然后尝试将其转换为整数,例如: std::stoi如果成功则有一个整数。

然后,您可以继续检查控制流/逻辑的已解析整数的值。

如果您有任何疑问,请与我们联系!