Повышение чтения::multiprecision::cpp_int от istream

Я пытаюсь прочитать значения boost::mutiprecision cpp_int из istream и его неожиданно вызывающих исключений. Вот моя тестовая программа:

#include <boost/multiprecision/cpp_int.hpp>

int main() {
    boost::multiprecision::cpp_int  v;
    while(std::cin >> v) {
        std::cout << v << std::endl;
    } 
}

это должно прочитать числа и распечатать их, пока что-то не число не будет на входе. Тем не менее, если есть когда-либо нецифровый, непробельный символ, я получаю:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >'
  what():  Unexpected character encountered in input.
Aborted (core dumped)

хуже того, это происходит перед чтением последнего числа, если за последним номером не следует пробел, поэтому я не могу просто перехватить исключение и проигнорировать его.

Как я могу получить целочисленный ввод boost:: multiprecision?

0 ответов

Другие вопросы по тегам