C ++:将std :: string转换为UINT64

时间:2016-07-19 10:45:00

标签: c++ string uint64

我需要将一个数字输入的(十进制,如果重要的话)字符串表示转换为UINT64以传递给我的数据对象。

col

有没有办法以与atoi()类似的方式将std :: string转换为UINT64?

谢谢!

编辑: 下面的工作代码。

    size_t startpos = num.find_first_not_of(" ");
    size_t endpos = num.find_last_not_of(" ");
    num = num.substr(startpos, endpos-startpos+1);
    UINT64 input;
    //convert num to input required here

3 个答案:

答案 0 :(得分:2)

使用strtoull_strtoui64()。 例如:

std::string s = "1123.45";
__int64 n = std::strtoull(s.c_str(),NULL,0);

答案 1 :(得分:2)

至少有两种方法可以做到这一点:

  1. 构建std::istringstream,并使用我们的老朋友>>运营商。

  2. 请自行转换。解析所有数字,一次一个,将它们转换为单个整数。这是一个非常好的练习。由于这是一个无符号值,因此无需担心负数。我认为这将是任何入门计算机科学课程中的标准作业。至少在我的日子里是这样的。

答案 2 :(得分:0)

您可以使用stoull

char s[25] = "12345678901234567890"; // or: string s = "12345678901234567890";
uint64_t a = stoull(s);