코드를 보다가 처음 보는 외계어를 발견했다.
예를 들자면,
printf("%*.*s", 20, 10, "abcdefghijklmn");
보기 쉽게 하기위해서 공백(space)를 ^ 로 표현 하겠다.
위 예제의 output은 아래와 같다.
^^^^^^^^^^abcdefghij
즉, '.' 앞의 숫자 20은 전체 폭이고, 뒤의 숫자는 보여질 갯수이다.
다르게 표현한다면,
printf("%20.10s", "abcdefghijklmn");
위와 같이 표현 할 수 있다.
가변적으로 하려면 위와 같이 하면 된다.
몇 가지 exercise를 해보면
printf("%*.*d", 20,10, 13);
=> ^^^^^^^^^^0000000013
printf("%*.d", 20, 13);
=> ^^^^^^^^^^^^^^^^^^13
printf("%*.s", 20,"abcde");
=> ^^^^^^^^^^^^^^^^^^^^ //헷갈림, 숫자로 할 때는 잘 됐는데...string은 생각한데로 안된다..
printf("%*.*s", 20,1,"abcde");
=> ^^^^^^^^^^^^^^^^^^^a
신기한게 많다.
반응형
'공부하며놀자 > 프로그래밍' 카테고리의 다른 글
[프로그래밍][c/c++] Copy CString to clipboard. CString 클립보드에 붙여넣기 (0) | 2016.09.13 |
---|---|
[프로그래밍][C++11] thread, future, promises, async (0) | 2016.08.24 |
C++ - clear empty delete std::ostringstream, stringstream (0) | 2015.11.25 |
std::string to const char * (0) | 2015.11.20 |
[C++] std::string to LPCWSTR (0) | 2015.11.19 |
댓글