所以,我正在尝试制作一个转换Base 10的基本C ++程序 - >基数16
while(true){
int input;
cout << "Enter the base 10 number\n";
cin >> input;
cout << "The hex form of " << input << " is: ";
int decimal = input;
cout << hex << uppercase << decimal << "\n";
decimal = NULL;
input = NULL;
Sleep(3000);
}
并且在第一次运行时它起作用。例如,如果我输入7331,我会得到:
The hex form of 7331 is 1CA3
但如果我第二次尝试(使用相同的输入),我会得到:
The hex form of 1CA3 is 1CA3
我可以尝试使用任何整数输入,它可以在第一次运行时正常工作,但之后它将基数为16的数字放入两次。
答案 0 :(得分:1)
您需要重置您的信息流。将std::hex
应用于std::cout
时,它会永久应用于流(std :: cout),您需要重置它。您只需将程序更改为:
cout << "The hex form of " << std::dec << input << " is: ";
答案 1 :(得分:0)
你的FIX:
cout << "The hex form of "<< dec << input << " is: ";
答案 2 :(得分:0)
你甚至可以缩短你的代码:
while (true)
{
int input;
cout << "Enter the base 10 number: ";
cin >> input;
cout << "The hex form of " << dec << input << " is: ";
cout << hex << uppercase << input << "\n";
Sleep(3000);
}