繁体   English   中英

std :: stoi的基本参数

[英]the base argument of std::stoi

c ++的stoi函数定义为:

int stoi(const std::string& str, std::size_t* pos = 0, int base = 10);

正如您所看到的, base参数默认为10 ,因此默认情况下它只能处理十进制数。 通过将base设置为0 ,它可以通过前缀处理数字。 这与strtol行为相同,那么为什么默认值设置为10而不是0

我写了添加这些功能的提案。 各种stoX转换功能的目标是提供简单的转换。 Base 10是迄今为止最常见的用法,应该是最简单的,因此是默认的。 基础0将导致许多初学者的问题,为什么转换字符串"010"不会产生10.你可以看到这个,如果你在Stackoverflow上阅读了足够的问题 - 许多初学者对文字常量的规则感到困惑,并期望int x = 010; x初始化为10。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM