【问题标题】:How can I preserve leading zeros when reading a number and printing it later?读取数字并稍后打印时如何保留前导零?
【发布时间】:2015-06-01 18:44:53
【问题描述】:

我想cout 一个从 0 开始的整数。例如,0123456789。 但是当我打印出来时,它只显示123456789 而不是0123456789

我该如何解决这个问题?

下面是我的示例代码:

sample.txt

0125961349
01359395930
019349130

我将1个联系人号码解析成一个对象,例如:019349130。因此:

cout << cp.contactNum << endl;

最后的结果是

19349130

这不是我想要的结果。你可以看到我有不同的整数长度,我不能使用前导零解决方案来解决它,否则它会变成0019349130

【问题讨论】:

  • 视情况而定,给我们看一些代码。
  • 这是一个字符串格式问题。所有整数都有无限的前导(和尾随)零。如果你想让它们显示出来,那么你必须告诉 C 正确格式化输出。
  • @MuertoExcobito 不,这不是我想要的方式。我希望它从我的文本文件中完全打印出来。
  • @ChuahChengJun - 你应该解释问题中的实际问题,因为正如它所写的那样,它与我标记的那个重复。
  • @ChuahChengJun 你可以使用任何你想要的方法。没有“一条正确的方法”。如果您不想使用字符串,则可以使用另一个整数来编码前导零的数量。如果需要,您甚至可以使用基数 11,并使用第十一位数字表示前导零。随心所欲。

标签: c++ integer cout


【解决方案1】:

您必须将数字解析为字符串或 const char* 否则您会丢失有关标题 0 的信息。因此 contactNum 的类型应该是 std::string 而不是 int。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2011-10-01
    • 1970-01-01
    相关资源
    最近更新 更多