Я пытаюсь прочитать несколько номеров на stdin
, по одному номеру на каждой строке. Я хочу игнорировать любой завершающий текст после числа и строк, если они есть в любой строке. Для реализации этого я использовал код ниже:Обработка ошибок после выполнения strtol
while (getline(cin, str)) {
num = strtol(str.c_str(), NULL, 0);
if (errno != ERANGE && errno != EINVAL) {
arr[i++] = num;
req_pages_size++;
cout << arr[i-1] << "\t";
}
str.clear();
}
ВОПРОС: После неудачного преобразования, ERRNO не обновляется со значением ошибки для успешного случая преобразования. Это значение остается неизменным для предыдущих вызовов, которые не увенчались успехом.
Пожалуйста, дайте мне знать, как справиться с этой проблемой?
спасибо за разъяснения ... он работал – neham