C++에서도 똑같이 사용할 수 있지만
다른 형식의 입출력 함수를 제공한다. 관련 포스팅 "여기"를 참고하자.
(+) 필요한 헤더 파일 <stdio.h>
#include <stdio.h>
출력 함수 printf()
C언어에선 기본적인 출력 함수로 printf()를 지원한다.
printf()의 기본적인 사용 방법은 다음과 같다.
{1} 원하는 문장을 출력
형식 : printf("출력할 내용");
예시 :
#include <stdio.h>
int main()
{
printf(Hello BncsReference!\n");
return 0;
}
결과 :
위와 같이 사용하면 자신이 원하는 문자열을 콘솔에 출력 할 수 있다.
주의할 점은 \n을 입력해주지 않으면 줄바꿈이 되지 않는다는 점이다.
{2} 변수를 포함한 원하는 문장 출력
변수에관한 자세한 내용은 변수에 관한 포스팅을 참고하기 바란다.
형식 : printf("출력할 내용", 출력할 변수)
예시 :
#include <stdio.h>
int main()
{
int score = 80;
printf("Player's score : %d\n", score);
return 0;
}
결과 :
1번의 경우와 다른 점이 두가지 있다.
첫번째는 출력하고자 하는 내용의 중간에 %로 시작하는 내용이 있다는 것이다.
%시작하는 부분을 서식문자라고 부르는데 이 부분이 변수가 출력될 곳이다.
출력하고자 하는 문장에서 변수가 위치할 곳을 표시해 주어야 한다.
다음 표에 각 변수별로 필요한 서식문자를 정리 한 것이다.
| 자료 타입 | 자료형 | 서식문자 | 비고 |
|---|---|---|---|
| 정수형 | int, short | %d | 10진 정수 |
| %x | 16진 정수 | ||
| %o | 8진 정수 | ||
| unsigned int | %u | 부호 없는 양의 10진 정수 | |
| 실수형 | float | %f | 10진 실수 (float형) |
| double | %ld | 10진 실수 (double형) | |
| %e | e를 이용한 지수표기법 | ||
| %E | E를 이용한 지수표기법 | ||
| %g | 소수점 이하 자리수에 따라 %f와 %e중 선택 | ||
| %G | 소수점 이하 자리수에 따라 %f와 %E중 선택 | ||
| 문자형 | char | %c | 문자 1개 |
| char[] | %s | 문자열 |
(+) 특수 문자 출력
키보드에는 스페이스바, 엔터(줄바꿈), 백스페이스, 백슬래쉬, 탭 과 같은
여러가지 특수 문자가 있다.
C언어에선 특수문자를 표현할 때 escape 문자라는 백슬래쉬(\)를 사용한다.
다음 표는 몇몇 특수문자를 정리해 놓은 것이다.
| 특수 문자 | 설명 |
|---|---|
| \a | 경고음 발생 |
| \b | 백스페이스(Backspace) |
| \n | 줄바꿈(New Line) |
| \t | 수평 탭 |
| \v | 수직 탭 |
| \\ | 백슬래쉬(\) |
| \' | 작은 따옴표 |
| \" | 큰 따옴표 |
(+) 출력 공간 지정
print()함수에서 서식문자를 입력 할 때
%뒤에 일정 형식으로 출력 옵션을 설정 할 수 있다.
%바로 뒤에 숫자를 입력하면 그 숫자만큼의 공간을 확보한다.
공간을 확보하는 형식은 다음과 같이 3가지가 있다.
| 형식 | 설명 |
|---|---|
| %0n | n칸만큼 확보하고 오른쪽 정렬로 출력한 뒤 빈 공간을 0으로 채운다 |
| %-n | n칸만큼 확보하고 왼쪽 정렬로 출력한다 |
| %+n | n칸만큼 확보하고 오른쪽 정렬로 출력한다 (+는 생락해도 된다.) |
(+) 소수점 출력 자리수 정하기
printf()로 소수점 출력 자리수를 정하는 방법은
%뒤에 .을 입력하고 몇째자리 까지 출력할지를 정해준다.
"%.2f" 라고 쓴다면 float형 변수를 소수점 둘째자리까지 출력한다는 의미이다.
위의 공간 지정방법과 결합하여 사용하자면
"%7.2f" 라고 쓴다면 float형 변수를 7칸을 확보하고
오른쪽 정렬로 소수점 둘째자리까지 출력한다는 의미이다.
(+)통합 예제
#include <stdio.h>
int main()
{
int d1 = 50, d2 = 60, x = 27, o = 10;
short i = 40;
unsigned int u = 100;
float f = 3.14;
double lf = 3.14159, e = 3.14, E = 2.27;
char c = 'a', s[7] = "string";
printf("d1 : %03d\n", d1);
printf("d2 : %3d\n", d2);
printf("i : %-3i\n", i);
printf("x : %x\n", x);
printf("o : %o\n", o);
printf("u : %u\n", u);
printf("f : %f\n", f);
printf("lf : %.4lf\n", lf);
printf("e : %10.1e\nE : %-10.1E\n", e, E);
printf("c : %c\ts : %s\n", c, s);
return 0;
}
결과 :


댓글 없음:
댓글 쓰기