본문 바로가기

IT노트(구)/C/C++

(C++) boost::lexical_cast를 이용한 형변환 예제

boost::lexical_cast를 사용하면

유연한 형변환이 가능합니다!(atoi와 같은 안전하지 못한 함수는 이제 잊어도 됩니다!)

다음은 간단한 boost::lexical_cast 사용 예제입니다.(boost 만세!)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string>
#include <iostream>
#include "boost/lexical_cast.hpp"
 
int main(int argc, char **argv)
{
    try
    {
        int a = boost::lexical_cast<int>("12345"); // 문자열을 int로 변환
        printf("%d\n", a); // 12345가 출력됨
 
        std::string b = boost::lexical_cast<std::string>(12345.5); // float를 string으로 변환
        printf("%s\n", b.c_str()); // 12345.5가 출력됨
    }
    catch(boost::bad_lexical_cast) // 잘못된 casting의 경우 예외 처리가 가능함
    {
        std::cout << "bad lexical cast" << std::endl;
    }
 
    return 0;
}
cs