코딩 노트
06-1 printf 함수 이야기 본문
printf함수는 문자열을 출력하는 함수이다. C언어는 큰 따옴표를 사용해서 문자열을 표현하는데, 문자열에 \n이 삽입이 되어있는 경우가 있다. 이를 '특수문자'라고 한다. 문자열에 포함이 되는 특수문자는 작은 따옴표로 묶어서 독립된 문자상수로도 존재할 수 있다. 그렇다면 '특수문자', 혹은 '이스케이프 시퀀스(escape sequence)'라 불리는 문자들이 필요한 이유는 무엇일까?
이러한 유형의 문제 해결을 위해 특수문자가 존재하는 것이다.
1. printf 함수의 서식지정
printf의 f는 formatted(서식이 지정된)을 의미한다. 따라서 printf라는 함수의 이름에는 '서식이 지정된 형태의 출력'이라는 뜻이 담겨져 있다. 이 말은 '출력 양식이 만들어진 상태에서 출력을 진행한다'는 뜻이다. 따라서 printf 함수를 이용하면, 문자열 안에 정수나 실수를 포함해서 출력하는 등의 출력양식을 직접 지정할 수 있다.
2. 정수의 출력을 위한 서식문자들: %d, %u, %o, %x
8진수와 16진수의 출력에 사용되는 %o와 %x를 이용해서는 양의 정수만 출력이 가능하다. 따라서 음의 정수를 출력하려면 반드시 %d를 사용해야 한다. 참고로 8진수와 16진수는 음의 정수 표현에 거의 사용되지 않는 표현법이다. 따라서 서식문자에서도 양의 정수만 출력이 가능하도록 제한하고 있다. 그리고 8진수를 8진수답게, 16진수를 16진수답게 출력하고 싶다면, 서식문자 %o 그리고 서식문자 %x의 사이에 #을 넣어서 %#o와 %#x를 이용해서 출력하면 된다.
위 예제에서 보이듯이, 16진수로 출력할 경우 출력된 내용이 16진수 정보임을 알리기 위해서 가급적 서식문자에 #을 포함시켜서 출력하는 것이 좋다.
3. 실수의 출력을 위한 서식문자들: %f, %e, %g
%g는 소수점 이하의 자릿수가 늘어나면 e표기법으로 출력을 한다. 3.14와 같이 간단한 실수라면 %f로 출력하는 것이 수의 크기를 파악하기에 좋을 것이고, 0.0000025와 같이 소수점 이하의 자릿수가 긴 실수라면 %e로 출력하는 것이 수의 크기를 파악하기에 좋을 것이다. 서식문자 %g는 실수의 형태에 따라서 %f와 %e 사이에서 적절한 형태의 출력을 진행한다.
%s에서의 s는 string의 약자로서 문자열의 출력을 지시하기 위한 서식문자에 사용된다. 깊이 있는 부분까지 언급하기에는 아직 알고 있는 문자열이 많이 없기 때문에 깊이 있는 이해를 위한 설명은 배열과 포인터에서 진행하겠다.
위 예제에서 보여주는 서식문자 %s의 활용방법을 기억하자.
4. 필드 폭을 지정하여 정돈된 출력 보이기
서식문자에는 출력의 필드 폭을 지정하는 옵션을 추가할 수 있다. printf 함수는 명령 프롬프트 상에 출력하기 때문에, 보기 좋은 출력을 위해서 필드의 폭을 지정하는 것도 필요하다.
'C' 카테고리의 다른 글
06-2 scanf 함수 이야기 (0) | 2021.05.06 |
---|---|
05-4 자료형의 변환 (0) | 2021.05.06 |
05-3 상수에 대한 이해 (0) | 2021.05.05 |
05-2 문자의 표현방식과 문자를 위한 자료형 (0) | 2021.05.05 |
05-1 C언어가 제공하는 기본 자료형의 이해 (0) | 2021.03.05 |