21xrx.com
2024-11-10 00:57:46 Sunday
登录
文章检索 我的文章 写文章
C++如何判断输入的是整数还是浮点数?
2023-06-27 20:06:40 深夜i     --     --
C++ 判断 输入 整数 浮点数

在使用C++进行编程时,有时需要判断用户输入的是整数还是浮点数,以便进行不同的处理。下面介绍几种实现这个功能的方法。

1. 使用cin.fail()函数

cin.fail()函数用于判断输入流状态,当用户输入的不是数字时,会返回一个非零值。我们可以利用这个特性来判断输入的是整数还是浮点数。具体做法如下:


#include <iostream>

using namespace std;

int main() {

  int a;

  float b;

  cout << "请输入一个数:";

  cin >> a;

  if (cin.fail()) {

    cin.clear(); //清除输入流状态

    cin >> b;

    cout << "您输入的是浮点数:" << b << endl;

  } else

    cout << "您输入的是整数:" << a << endl;

  

  return 0;

}

上面代码中,如果用户输入的是整数,则直接输出输入的整数;如果用户输入的是浮点数,则先清除输入流状态,再读取一个浮点数并输出。

2. 使用正则表达式

正则表达式是一种强大的文本处理工具,可以用来匹配字符串中的模式。在C++中,可以使用regex库提供的正则表达式功能来判断输入的字符串是不是整数或浮点数,具体代码如下:


#include <iostream>

#include <regex>

using namespace std;

int main() {

  string input;

  cout << "请输入一个数:";

  cin >> input;

  if (regex_match(input, regex("[+-]?[0-9]+"))) {

    cout << "您输入的是整数:" << stoi(input) << endl;

  } else if (regex_match(input, regex("[+-]?[0-9]+(.[0-9]+)?"))) {

    cout << "您输入的是浮点数:" << stof(input) << endl;

  } else

    cout << "无法识别对应的数字类型!" << endl;

  

  return 0;

}

上面代码中,首先读取用户输入的字符串,然后依次匹配整数和浮点数的正则表达式。如果匹配成功,则输出相应的数字类型,并利用stoi和stof函数将字符串转化为整数或浮点数。如果匹配不成功,则输出提示信息。

总之,无论使用哪种方法,都可以实现C++对输入的数字类型的判断。在实际编程过程中,可以根据具体情况选择最为适合的方式来解决问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复