C++ 从十六进制到十进制,从二进制到十进制,从oct到十进制程序c++;

C++ 从十六进制到十进制,从二进制到十进制,从oct到十进制程序c++;,c++,hex,C++,Hex,第一个数字是hex/bin/oct,第二个是您给出的数字 关于while(cin>>a),它是这样的,因为它应该是一种无止境的循环,会有很多输入,是的。我想它不会工作,因为那条语句,但我不知道如何修复它。你的代码工作得很好:如果你得到一个错误,它是在你的示例输入以外的值上。如果你提供的价值观给你带来了一个问题,我很乐意和你一起研究 顺便提一下,为什么不在所有事情上都使用stoi?例如: For example if i have an input: 2 1111 16 F 8 1 it sh

第一个数字是hex/bin/oct,第二个是您给出的数字

关于while(cin>>a),它是这样的,因为它应该是一种无止境的循环,会有很多输入,是的。我想它不会工作,因为那条语句,但我不知道如何修复它。

你的代码工作得很好:如果你得到一个错误,它是在你的示例输入以外的值上。如果你提供的价值观给你带来了一个问题,我很乐意和你一起研究

顺便提一下,为什么不在所有事情上都使用
stoi
?例如:

For example if i have an input: 
2 1111
16  F
8 1
it should have an output:
15
15
1
字符串s;
而(cin>>a){
cin>>s;

cout@Pafo我编辑过来解释这个问题。直到你输入了那个评论,我才看到它。因为它对我有帮助,可能对其他人也有帮助,所以把它放到你的问题中可能会是一个更好的问题。嘿,伙计,谢谢你。我在这个代码中添加了dec->std::cin>>std::hex>>b>>dec;它现在可以工作了。dec到底是如何修复的程序?编辑:事实上,当我输入很多东西时,它不会正常工作。编辑2:我添加了cout@Pafo。你需要向我展示一个具体的例子,说明输入很多东西会破坏功能。(我再次强烈建议使用我的代码,而不是switch语句。)好吧,现在它工作得很好,但我不知道如何使用您的代码?@Pafo单击“Live Example”按钮,它链接了我的代码。如果这解决了您的问题,请不要忘记接受。
For example if i have an input: 
2 1111
16  F
8 1
it should have an output:
15
15
1
string s;

while(cin >> a) {
    cin >> s;
    cout << stoi(s, nullptr, a) << endl;
}