gpt4 book ai didi

c++ - C++ 中的二进制文字

转载 作者:行者123 更新时间:2023-12-03 06:53:52 25 4
gpt4 key购买 nike

我可以在用户输入 int 值之前在 c++ 中添加二进制文字前缀吗?

#include <iostream>
using namespace std;

int main () {
int n1;
cin>>n1;
string s1 = to_string(n1);
string s2 = "0b";
string s=s2+s1;
int n=stoi(s);
cout<<n;
return 0;
}

我试过了但失败了,因为 stoi() 只读取 0 并跳过其余部分

最佳答案

仍然没有办法直接从标准输入中读取二进制数。基数的任何自动检测都不支持 "0b",因此 stoi() 在到达 'b' 时停止。

如果 s 是从标准输入(可能是 std::cin >> s;)读取的 std::string没有 "0b" 前缀,那么你可以使用

#include <cstdlib>
char* end;
long n = std::strtol(s.c_str(), &end, 2/*radix of 2 denotes binary*/);

检查指针 end 以防 s 中存在无效的二进制数字。

请注意,我使用的是 strtol 而不是 stoi,因为 int 的上限可以小到 32767。

关于c++ - C++ 中的二进制文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64644581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com