当前位置:  开发笔记 > 编程语言 > 正文

将字符串转换为size_t

如何解决《将字符串转换为size_t》经验,为你挑选了4个好方法。

有没有办法转换std::stringsize_t?问题是size_t平台可靠类型(虽然它是结果sizeof).所以,我无法保证转换stringunsigned longunsigned int将正确执行.

编辑:一个简单的例子是:

std::cout<< "Enter the index:";
std::string input;
std::cin >> input;
size_t index=string_to_size_t(input);
//Work with index to do something

Lingxi.. 9

您可能希望使用sscanf说明%zu符,用于std::size_t.

sscanf(input.c_str(), "%zu", &index);

看看这里.

从字面上看,我怀疑那里是一个重载operator >>std::basic_istringstreamstd::size_t.看到这里.



1> Lingxi..:

您可能希望使用sscanf说明%zu符,用于std::size_t.

sscanf(input.c_str(), "%zu", &index);

看看这里.

从字面上看,我怀疑那里是一个重载operator >>std::basic_istringstreamstd::size_t.看到这里.



2> 小智..:

您可以使用 std::stringstream

std::string string = "12345";
std::stringstream sstream(string);
size_t result;
sstream >> result;
std::cout << result << std::endl;



3> Bathsheba..:

您可以%zdscanf-type方法中用作格式说明符.

或者使用一个std::stringstream会超载>>size_t.



4> DevSolar..:

让我们假设一分钟size_t是一个typedef到一个现有的整数,即相同的宽度或者unsigned intunsigned longunsigned long long

就标准措词而言,可以是单独的(更大)类型,但我认为这种可能性很小。

与假设的工作size_t是不是更大的unsigned long long,无论是stoull或strtoull将随后投地size_t应该工作。


根据相同的假设(size_tunsigned long或定义unsigned long long),该类型有一个operator>>重载。

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有