首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c++中查找int是否包含前导0

如何在c++中查找int是否包含前导0
EN

Stack Overflow用户
提问于 2022-01-04 11:47:43
回答 1查看 216关注 0票数 -1

所以我知道在c++中,in中的前导0仍然存在并被使用,但是当你打印出来它会去掉0,所以我想知道是否有一种方法来检查在打印出来显示它时是否有前导0?或者,如果有一种方法可以手动检查int的第一个数字并检查其== 0,那么在打印出时我可以添加0吗?对于我的情况,int将始终是2位数。因此,int可以是000155

e.g

代码语言:javascript
复制
int main()
{
  int b = 01;
  std::cout << b << "\n"; // This should print 01 not 1
  return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2022-01-04 11:53:40

整数以二进制形式存储。我想你说的是在屏幕上显示整数。不要将内部表示与整数的显示方式混淆。若要使用前导零显示,可以结合使用std::setwstd::setfill

代码语言:javascript
复制
#include <iostream>
#include <iomanip>

struct zero_padded {
    unsigned value;
    unsigned width = 2;    
};

std::ostream& operator<<(std::ostream& out, const zero_padded& zp){
    return out << std::setw(zp.width) << std::setfill('0') << zp.value;
}

int main() {
  std::cout << zero_padded{25} << "\n";
  std::cout << zero_padded{5} << "\n";
  std::cout << zero_padded{0} << "\n";
  std::cout << zero_padded{25,4} << "\n";
  std::cout << zero_padded{5,4} << "\n";
  std::cout << zero_padded{0,4} << "\n";    
}

输出:

代码语言:javascript
复制
25
05
00
0025
0005
0000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70578321

复制
相关文章

相似问题

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