가장 첫 강의 자료에서 hello world를 출력하는 걸 한 적이 있습니다. 이번에는 printf와 그 출력 형식을 지정할 수 있는 지정자에 대해서 알아보겠습니다.
printf는 "hello world" 와 같은 문자열을 출력할 수도 있지만, 다양한 값들을 출력할 수 있습니다.
아래를 보시면 그 내용에 대한 것입니다.
정수형
정수형에서는 의문이 갈만한 내용은 없으실 거라 생각합니다.
단, %u는 주의하셔야 됩니다. 만약 %u의 인자로 음의 정수를 입력을 하면 그 결과는 어떻게 될까요?
#include <stdio.h>
int main(void)
{
printf("%u", -10);
return 0;
}
결과
-10을 입력하였는데, 그 결과가 4294967286 이라는 결과가 나왔습니다.
지난 자료에 있는 자료형에서 "1의 보수" 를 생각해보시면 됩니다.
다만 단위가 int형인 4바이트의 데이터이기 때문에 0번 비트부터 31번 비트까지 고려해야합니다.
실수형
문자형
문자형에서 %c와 %s의 차이는 하나의 문자만 출력하는건 %c이고, 문자열을 출력하는 것은 %s입니다.
포인터
포인터는 나중에 나올 개념이긴 한데, 데이터가 저장된 주소를 출력하는 타입이라고 현재 단계에서는 알아두고 가시면 될 것 같습니다.
% [매개 변수] [플래그] [너비] [.정밀도] [길이] 형식 지정자 유형
형식지정자는 위 처럼 옵션을 주어 지정할 수 있습니다.
예를 들어 %3d 라고 할 경우 3자리 10진수로 출력한다는 뜻입니다.
printf("%3d", 10);이라고 입력하면 그 결과는
[공백1칸]10 으로 출력됩니다.
특수문자
그리고 printf에 사용하는 문자형들이 있습니다.
표에서 작성된 내용중 가장 많이 사용하는 부분은 '\n' 입니다. Carriage Return(캐리지 리턴)이라고 부르기도 하고, 한국어로 "개행 문자"라고도 합니다. 즉, 새로운 줄로 바꿔주고 그 시작점을 가장 왼쪽으로 한다는 뜻입니다.
나머지 부분은 실습을 하면서 사용해봅시다.
위와 같이 빈프로젝트와 소스 코드에서 printf.c 파일을 생성해줍시다.
#include <stdio.h>
int main(void)
{
printf("학생 성적 출력하기\n");
printf("==================\n");
printf("이 름\t국 어\t영 어\t수 학\n");
printf("%3s\t%3d\t%3d\t%3d\n", "김철수", 90, 80, 77); // 철수는 이름 출력후 \t이용하여 탭으로 이동
printf("%3s %3d\t%3d\t%3d\n", "김영희", 80, 70, 100); // 영희는 이름 출력 후 스페이스바로 4칸
printf("%3s\t%3d\t%3d\t%3d\n", "홍길동", 89, 78, 88); // 철수는 이름 출력후 \t이용하여 탭으로 이동
printf("반 영어 점수 평균 = %3.2f\n", 86.333333); // 평균 점수 83.3333333 중에서 정수 부분은 3자리까지
// 소수점은 2자리만 출력
return 0;
}
위와 같이 입력 후 컴파일 해줍시다.
Ctrl + F5
이런 결과를 보실 수 있습니다.
\t을 반영한 내용은 보시면 줄이 딱 맞게 들어가는 걸 보실 수 있을 겁니다.
양식에 맞춰서 출력되는 걸 하고 싶으시면 \t를 잘 활용하시면 출력이 예쁜 모양으로 나오게 정리 가능합니다.
'IT > C언어' 카테고리의 다른 글
[비와이][C언어] 연산자에 대해서 알아보자 - 2(할당, 삼항, 비트) (0) | 2021.06.27 |
---|---|
[비와이][C언어] 연산자에 대해서 알아보자 - 1 (0) | 2021.06.26 |
[비와이][C언어] 03 - 변수와 상수 (0) | 2021.06.24 |
01 - 데이터 자료형에 대해서 알아보자 ( 양수, 음수, 1의 보수 ) (0) | 2021.06.20 |
00 - Visual Studio Community 2019 설치, Hello World 출력 (0) | 2021.06.11 |
댓글