使用相同的表示将二进制字符串转换为int

时间:2017-12-29 04:39:55

标签: c++ string type-conversion int

我有一个问题,如何通过保持相同的数字重新排列,在C ++中将二进制字符串转换为int?例如,我想将此字符串“0000”转换为此int 0000。

当我使用它时:

string str = "0000" ;
int num = atoi(str.c_str());
cout <<num << endl;

我得到了数字0,但我想要数字0000。

1 个答案:

答案 0 :(得分:0)

您将使用setfill操纵器添加格式化逻辑。

#include <iostream>
#include <iomanip>

int main()
{

  for(int n = 0; n <= 1000; n = n + 100)
  {
    std::cout << "default: " << std::setw(4) << n << '\t'
      << "setfill('0'): " << std::setfill('0')
      << std::setw(4) << n << '\n';
  }

  return 1;
}

这将产生以下输出:

default:    0   setfill('0'): 0000 <-- Desired formatting when value is 0
default: 0099   setfill('0'): 0099
default: 0198   setfill('0'): 0198
default: 0297   setfill('0'): 0297
default: 0396   setfill('0'): 0396
default: 0495   setfill('0'): 0495
default: 0594   setfill('0'): 0594
default: 0693   setfill('0'): 0693
default: 0792   setfill('0'): 0792
default: 0891   setfill('0'): 0891
default: 0990   setfill('0'): 0990