Я пытаюсь прочитать несколько чисел на stdin
, по одному числу в каждой строке. Я хочу игнорировать любой завершающий текст после числа и строк, если они есть в любой строке. Для реализации этого я использовал следующий код:
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 не обновляется значением ошибки для случая успешного преобразования. Это значение остается прежним для предыдущих вызовов, которые не увенчались успехом.
Подскажите, пожалуйста, как справиться с этой проблемой?