#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void main() {
int a, b;
while (cin >> a) {
switch (a) {
case 2: {
cin >> b;
std::string s = std::to_string(b);
int dec = std::stoi(s, nullptr, 2);
cout << dec << endl;break;
}
case 8:
cin >> b;
cout << oct <<b<< endl; break;
case 16:
std::cin >> std::hex >> b;
std::cout << b << std::endl;
}
}
}
這就是我的代碼。它們中的每一個都有效,但十六進制一個。當我使用它時,它不起作用。從十六進制到十進制,二進制到十進制和八進制到十進制程序C++
For example if i have an input:
2 1111
16 F
8 1
it should have an output:
15
15
1
第一個數字是十六進制/ bin/oct,第二個是你給的數字。
關於while(cin >> a),就是這樣,因爲它應該有一個無限循環,會有很多輸入和是啊。我猜這是行不通的,因爲這個聲明,但我不知道如何解決它。
嘗試使用16 f,然後再16 f,它不起作用。 – Pafo
@Pafo我編輯過來解釋這個問題。直到您輸入該評論,我纔看到它。由於它對我有幫助,所以也可能對其他人有所幫助,將它轉換成您的問題可能會提出更好的問題。 –
嘿,夥計,謝謝。我在這段代碼中添加了dec - > std :: cin >> std :: hex >> b >> dec;並且它現在可以工作。究竟dec是如何修復這個程序的? 編輯:實際上,當我輸入很多東西它沒有正常工作。 編輯2:我添加了cout << oct << b << dec << endl它的工作原理:D – Pafo