티스토리 뷰

빠르게 내용만 확인하실 분들은 아래 잡다한 서두를 무시하고 아래 본문을 살펴보시는 것을 추천합니다 _(_ _)_.

 

C++ 언어는 C++11을 이후로 급격하게 발전하면서 다른 메이저 언어들과 견주어도 부끄럽지 않을 정도로 많은 패러다임과 최신 기술을 포함하고 있는 언어가 되고 있습니다(개발 편의성, 생산성 등의 비교는 하지 않겠습니다).

 

최근 C++20에서는 std::format의 도입으로 최신식 포맷 기술이 도입되면서 기존의 c에서 메이저하게 다뤄지던 printf, snpritnf, vsprintf류들과의 작별도 준비된 모습입니다.

 

std::format에 대한 공식 스펙에 대해 알고 싶은 분은 여기를 참고하시기 바랍니다.

 

std::format - cppreference.com

template< class... Args > std::string format( std::format_string fmt, Args&&... args ); (1) (since C++20) template< class... Args > std::wstring format( std::wformat_string fmt, Args&&... args ); (2) (since C++20) template< class... Args > std::string form

en.cppreference.com

 

std::format은 builtin-type 외에도 사용자 정의 타입에 대한 포맷팅 등에 대한 기능들을 지원하기 때문에 C++ 사용자에게 있어 매력적이지만 아쉽게도 c 스타일 포맷 문자열에 대한 호환성이 없습니다.

 

이것이 이 포스팅을 작성하게 된 계기로, C 스타일로 작성되던 파일 리소스가 존재하는데 이를 C++ 스타일로 변경하려는 시도를 하던 도중 C 포맷 지정자의 종류를 제대로 작성한 곳이 많지 않아 구현에 귀찮음이 존재했으므로 쉽게 확인하고자 블로그에 모아두기로 했습니다.

 

 

 

C 포맷 지정자 리스트


C 포맷 지정자(format specifier)에 대한 리스트는 아래 사이트를 참고하시기 바랍니다:

 

List of all format specifiers in C programming - Codeforwin

In C programming we need lots of format specifier to work with various data types. Format specifiers defines the type of data to be printed on standard output. Whether to print formatted output or to take formatted input we need format specifiers. Format s

codeforwin.org

 

C 스타일의 포맷에는 형식 지정자 외에도 양수/음수 표현, 소숫점 자릿수 표현 등의 부가 기능들을 제공하는데 이것을 일반화한 형식은 다음과 같으며, 아래 사이트에서 참고하실 수 있습니다:

 

C++ Printf Function: A Guide with Examples

Know the fundamentals of the C++ printf function with examples. The printf in C++ also contains a format specifier. Learn all about the printf() function now!

www.simplilearn.com

%[flags][width][.precision][length]specifier

 

 

 

참고 자료


문서 참조

Codeforwin - List of all format specifiers in C programming
simplelearn - Understanding C++ Printf Function With Examples

 

댓글