gpt4 book ai didi

C++ 整数后跟 char 被接受为输入

转载 作者:行者123 更新时间:2023-12-02 07:26:21 26 4
gpt4 key购买 nike

我正在使用一个函数来检查我的输入是否仅是整数:

    int input;
while (true)
{
std::cin >> input;
if (!std::cin)
{
std::cout << "Bad Format. Please Insert an integer! " << std::endl;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
continue;
}
else
return input;
}

但是,当输入一个整数后跟一个字符时,例如。 3s,整数被接受并打印消息。

如何确保这种格式的输入不会被接受,4s 5形式的输入也不会被接受,因此当整数出现在空格后面时。

最佳答案

发生这种情况是因为 c++ 中的字符由它们在 ascii 表中的数值表示,您可以尝试像这样的正则表达式:

#include <regex>
#include <string>
std::string str;
std::regex regex_int("-?[0-9]");
while (true)
{
std::cin >> str;
if (regex_match(str, regex_int))
{
int num = std::stoi(str);
//do sth
break;
}
}

关于C++ 整数后跟 char 被接受为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62037841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com