c++ string to boost::multi precision::cpp_int

2023-12-30

如何将字符串转换为“boost::multi precision::cpp_int”?

此外,我有一个 .txt 文件,其中包含 100 个数字,每个数字 50 位,我使用 ifstream 将它们逐行读取到字符串数组中。如何将数组中的每个字符串转换为cpp_int,然后将所有 100 个数字相加并得到总和?


要转换单个字符串,请使用cpp_int构造函数:cpp_int tmp("123");.

对于文本文件情况,将循环中的每个数字读取为std::string via std::getline,然后放回std::vector<cpp_int>。然后使用后者来计算总和。例子:

#include <fstream>
#include <iostream>
#include <string>
#include <vector>

#include <boost/multiprecision/cpp_int.hpp>

using namespace boost::multiprecision;

int main()
{    
    std::vector<cpp_int> v;
    std::fstream fin("in.txt");

    std::string num;
    while(std::getline(fin, num))
    {
        v.emplace_back(num);
    }
    cpp_int sum = 0;
    for(auto&& elem: v)
    {
        std::cout << elem << std::endl; // just to make sure we read correctly
        sum += elem;
    }
    std::cout << "Sum: " << sum << std::endl;
}

PS:你可以在没有std::vector,通过临时cpp_int您在循环内构建并将其分配给sum:

std::string num;
cpp_int sum = 0;
while(std::getline(fin, num))
{
    cpp_int tmp(num);
    sum += tmp;
}
std::cout << "Sum: " << sum << std::endl;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++ string to boost::multi precision::cpp_int 的相关文章

随机推荐