私はstdin
、各行に1つずつ、いくつかの数字を読み込もうとしています。数字と文字列の後の末尾のテキストがあれば無視したい。これを実装するために、私は以下のコードを使用しました:
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が更新されません。失敗した以前の呼び出しの値は同じままです。
この問題の処理方法を教えてください。