Непроверенное целочисленное значение получено из std :: stoi

Ниже кусок кода бросает Непроверенное целочисленное значение получено из std :: stoi ошибка klocwork. Если * содержит недопустимый диапазон или нецелое значение, будет выполнен блок catch. Но мы получаем ошибку klocwork в секунду для цикла for, поскольку «значение» испорченных данных используется в границе цикла. Как исправить эту проблему?

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

int main()
{
int value = 0;
std::vector<std::string> test;
test.push_back("1");
test.push_back("2");

for (std::vector<std::string>::iterator it = test.begin(); it != test.end(); ++it)
{
try
{
value = std::stoi(*it);
}
catch (...)
{
return -1;
}

for (int i = 0; i < value; i++)
{
//...
//...
}

}

return 0;
}

4

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]