Ошибка выполнения cpp_int (boost): при разборе строки символов обнаружен неожиданный контент - PullRequest
1 голос
/ 15 мая 2019

Я получаю следующую ошибку времени выполнения с boost :: multiprecision :: cpp_int:

terminate called after throwing an instance of 'boost::wrapexcept<std::runtime_error>'
what():  Unexpected content found while parsing character string.

Функция randomCppInt генерирует случайный cpp_int заданной длины. Программа просто циклически отображает их, но завершается с ошибкой случайным образом - иногда при первом прохождении цикла, иногда после нескольких итераций. Я не могу определить, где я иду не так.

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <boost/multiprecision/cpp_int.hpp>

using namespace boost::multiprecision; 
using namespace std;

// Generates a random cpp_int of specified length.
cpp_int randomCppInt(cpp_int length)
{
    // Seed RNG with time.
    srand(time(0));
    string num = "";

    // Iterate for length
    for (cpp_int i = 0; i < length; i++)
    {
        // Random char from '0' to '9'
        char ch = (rand() % 10) + 48;
        // Add to string.
        num += ch;
    }

    // Init new cpp_int using string and return to caller.
    cpp_int result(num);
    return result;
}


int main()
{

    // For testing, just generate randoms and cout for now.
    while (true)
    {
        cpp_int num = randomCppInt(5432);
        cout << num << endl;    
    }

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...