首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有一种方法可以在C++源代码中编写大量带空格的数字,使其更具可读性?

有没有一种方法可以在C++源代码中编写大量带空格的数字,使其更具可读性?
EN

Stack Overflow用户
提问于 2018-05-28 13:28:25
回答 3查看 10.9K关注 0票数 48

假设我有下面的代码:

vector<int> temp = vector<int>(1 000 000 000);

上面的代码不能编译,因为编译器会抱怨空格。是否可以在编译时指示C++省略这些空格,或者以其他方式使数字更易于阅读?

EN

回答 3

Stack Overflow用户

发布于 2018-05-28 18:02:43

我通常为此目的定义常量,因为它节省了计数零,并清楚地表明您对任何查看代码的人意味着什么。例如

#define THOUSAND 1000
#define MILLION 1000000

vector<int> temp = vector<int>(THOUSAND * MILLION);

这清楚地表明,我的意思是10亿没有数错零

显然,如果您愿意,您可以使用枚举。

票数 12
EN

Stack Overflow用户

发布于 2018-05-28 21:41:09

另一个想法可能是:

#define _000 *1000

int k = 1 _000 _000;
票数 1
EN

Stack Overflow用户

发布于 2018-05-29 00:03:56

如果不使用C++14,另一种选择是使用某种字符串继承的类,并在构造函数中使用隐式的int-cast和正则表达式检查来限制数字。我使用CString作为一个简单的例子。

class NumString : public CString
{
public:
    NumString(CString number) : num(number) { } //maybe insert some regex-check here
    operator long() const
    {
        CString tmp = num;
        tmp.Remove(' ');        
        return atol(tmp);
    }
private:
    CString num;
};


NumString a = "1 000 000 000";
int b = a;
bool test = b == 1000000000;
//test will be true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50559636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档