C++能不能用控制输入流的方法做到这个呢?多谢各路大神
之前看到用字符串做的 好麻烦 能不能用输入流的功能做?
#include
#include
using namespace std;
int mian(){
int x;
cout <<"Input Hex Format a int number"< cin>>hex>>x;
cout <<"Now Output in oct Format"<<endl;
cout <<oct<<x<<endl;
return 0;
}
输入流?无论采用什么,只是完成一个数据的传输的过程;然后,再完成进制转换的过程。
输入字符串,确实是麻烦一些,但很通用;可以考虑直接输入数字,无论是 10 进制、还是 16 进制,还是其它进制。
不管是字符串还是输入流,进制数之间的转换算法本质都是一样的
用字符串并不麻烦:
#include <iostream>
int val(char * hex)
{
int n = 0;
while (*hex != '\0')
{
if (*hex >= 'A' && *hex <= 'F')
{
n *= 16;
n += *hex - 'A' + 10;
}
if (*hex >= 'a' && *hex <= 'f')
{
n *= 16;
n += *hex - 'a' + 10;
}
if (*hex >= '0' && *hex <= '9')
{
n *= 16;
n += *hex - '0';
}
hex++;
}
return n;
}
int main()
{
char input[100] = "3DC";
int v = val(input);
printf("%d\n", v);
char oct[100];
itoa(v, oct, 8);
printf("%s\n", oct);
return 0;
}
因为你的输入输出是别的进制,肯定要用字符串来表示。