在Ada中,可以用下划线分隔数字,这极大地提高了可读性。例如: 1_000_000 (相当于1000000)对C++有类似的方式吗?
编辑:这是关于源代码的问题,而不是I/O。
发布于 2013-04-04 23:54:36
从C++14开始,您可以将'用作digit group separator
auto one_m = 1'000'000;以前的C++版本本身并不支持这一点。有两种主要的解决方法:
auto x= "1_000_000"_i;
(将这段代码写成constexpr会更麻烦,- but是完全可能的。)
允许以下代码的
自动x= NUM(1,000,000);
发布于 2013-04-04 23:38:33
目前没有办法做到这一点。然而,有一项建议是引入digit seperators (N3499)。他们还没有选择他们想要用作分隔符的字符。目前的建议是:
重音空间:4 815 162 342
4'815'162'342
4_815_162_342
不幸的是,它们都存在提案中描述的问题。
您可以通过使用用户定义的文字来采用hacky方法:
long long operator "" _s(const char* cstr, size_t)
{
std::string str(cstr);
str.erase(std::remove(str.begin(), str.end(), ','), str.end());
return std::stoll(str);
}
int main()
{
std::cout << "4,815,162,342"_s << std::endl;
}这将打印出来:
4815162342它只是从给定的文字中删除所有逗号,并将其转换为整数。
发布于 2013-04-05 05:33:19
int main()
{
int x = 1e6;
}https://stackoverflow.com/questions/15815646
复制相似问题