gpt4 book ai didi

c++ - 如何测试输入数据总是整数类型?

转载 作者:太空宇宙 更新时间:2023-11-04 14:19:17 25 4
gpt4 key购买 nike

如果我想测试我的输入数据总是整数,我该怎么做?我的意思是我想将输入放入 vector 中,但我想确保输入是整数。我知道当我输入“A”时,它会跳出 while 循环。但我希望它能更优雅,我能为此做些什么。有什么建议吗?ps:我不想用char来测试和转换。

这是简单的代码。非常感谢。

#include <iostream>
#include <vector>
using namespace std;

int main()
{
vector<int> ivec;
int num;

cout << "Please enter some integers for input or (exit) to exit" << endl;

while(cin >> num)
{
ivec.push_back(num);
}
.....

最佳答案

这取决于您是想重新发明轮子 (DIY),还是更喜欢站在巨人的肩膀上。

在后一种情况下,我只能建议 boost::lexical_cast<T> .

#include <iostream>
#include <string>
#include <vector>

#include <boost/lexical_cast.hpp>

int main() {
std::string buffer;
std::vector<int> vec;

std::cout << "Please enter an integer:" << std::endl;
while (true) {
std::cin >> buffer;

try {
vec.push_back(boost::lexical_cast<int>(buffer));
break; // exit the loop
} catch(boost::bad_lexical_cast const&) {}

std::cout << "Sorry, '"
<< buffer
<< "' could not be parsed as an integer, please try again."
<< std::endl;
}

return vec.size() == 1;
}

关于c++ - 如何测试输入数据总是整数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877323/

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