gpt4 book ai didi

c++ 字符串到 boost::multiprecision::cpp_int

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:58 29 4
gpt4 key购买 nike

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

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

最佳答案

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

对于文本文件的情况,循环读取每个数字作为 std::string通过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;

关于c++ 字符串到 boost::multiprecision::cpp_int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667738/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com