我有一个问题,如何通过保持相同的数字重新排列,在C ++中将二进制字符串转换为int?例如,我想将此字符串“0000”转换为此int 0000。
当我使用它时:
string str = "0000" ;
int num = atoi(str.c_str());
cout <<num << endl;
我得到了数字0,但我想要数字0000。
答案 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