박상묵 님이 쓰신 글 :
: 안녕하세요
:
: 각 진수숫자를 입력받아
:
: 10진수로 출력하는 비교적 간단할것 같은걸
:
: 만들어보고 (죄송합니다 이런걸 만들고 있어서..)
죄송할것까지야... 누구에게나 초보시절은 있기마련이죠.
: 있는데요
:
: 각 진수 입력을 어떻게 받으면 될까요?
:
: -_-;;
당근 문자열로 받아야지요.
문자열과 숫자간의 변환은 std::stringstream 이나 boost::lexical_cast를 쓰면 편리합니다.
제가 쓴 다음 글을 참고하세요.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=cpp_tip&no=37
참고로 8진수, 16진수 변환은 iostream에서 제공하는 oct, hex 조정자(manipulator)를 쓰면 간단하고요, 2진수 변환은 역시 ANSI C++ 라이브러리에 있는 bitset 클래스를 사용하면 편리합니다.
( http://www.sgi.com/tech/stl/bitset.html 참고)
내친 김에 프로그램 소스를 올려드립니다.
stringstream과 bitset의 사용 방법을 유의해서 보시기 바랍니다.
//---------------------------------------------------------------------------
#include <iostream>
#include <sstream>
#include <string>
#include <bitset>
//---------------------------------------------------------------------------
using namespace std;
int main()
{
stringstream interpreter;
string s_hex, s_oct;
int n;
cin >> s_hex;
interpreter << s_hex;
interpreter >> hex >> n;
cout << n << endl;
cin >> s_oct;
interpreter << s_oct;
interpreter >> oct >> n;
cout << n;
bitset<8> bs;
cin >> bs;
cout << bs.to_ulong() << endl;
return 0;
}
//---------------------------------------------------------------------------
|