printf함수
- printf함수는 출력할 데이터를 괄호 안에 넣어주는데 이것을 전달인자라고 한다.
- 전달인자 수는 출력되는 값에 따라 가변적이지만 첫번째는 반드시 문자열을 사용해야 한다.
printf("%d인치는 %lfcm입니다.", inch, inch*2.54);
전달인자가 문자열 하나인 경우
- 문자열을 그대로 화면에 출력하는 경우에 사용한다.
printf("C언어는 1972년 데니스리치가 개발했다.");
-> c언어는 1972년 데니스리치가 개발했다.
- 서식문자를 사용하면 다양한 형태로 출력할 수 있다.
printf("C언어는\n1972년\n데니스리치가 개발했다.);
-> c언어는
1972년
데니스리치가 개발했다.
다양한 서식문자
- 서식문자에는 줄바꿈문자 외에도 여러 가지가 있다.
\n newline 출력 위치를 다음 줄의 첫번째 칸으로 옮긴다
\t tab 출력 위치를 다음 탭 위치로 옮긴다
\r carriage return 출력 위치를 현재 줄의 첫번째 칸으로 옮긴다
\b backspace 출력 위치를 한 칸 뒤로 옮긴다
\a alert 경보음을 낸다(삑 소리가 난다)
- 큰 따옴표나 백슬래시 자체를 출력할 때도 백 슬래시를 사용
큰따옴표출력 -> \" 백슬래시 출력 -> \\
printf("학생들은 모두\"아~ 집에가고싶다~\"를 외쳤다.");
확장문자열
- 아스키문자를 표현하는 3가지 방법
-> 문자 상수로 표현 -> 'A'
-> 8진수 세자리로 표현 -> '\101'
-> 16진수 두 자리로 표현 -> '\x41'
- 특수 문자는 문자 상수로 표현하기 어렵기 때문에 8진수 또는 16진수로 표현
printf("what a wonderful world. \102"); -> 복잡함
printf("what a wonderful world. \n");
예시문제
문자열 외에 출력할 데이터가 있는 경우
- 단순한 문자열 외에 출력할 데이터가 있는 경우 출력할 데이터의 개수에 맞게 변환문자열을 사용한다.
printf("키:%lfcm, 몸무게:%dkg", 161, 49);
->
키:161.000000cm, 몸무게:49kg
변환문자열 정리
예시문제2
- 다양한 변환문자열 실행
※출력형태
-10
10
3
2.500000
1.680000e+001
4.200000
F
A
황금 박쥐
날아라 태극호
변환문자열의 정확한 사용법
- 컴파일러는 변환문자열과 출력할 데이터가 일치하는지 확인하지 않는다. 따라서 자료형에 맞게 정확한 변환문자열을 사용해야 한다.
printf("%d", 3.4);
정수형 변환문자열의 선택(%d, %u)
- %d와 %u는 출력할 데이터를 각각 다르게 해석
%d : 부호가 있는 양의 정수, 음의 정수
%u : 양의 정수만을 표현함
정수형과 문자열 변환문자열의 선택(%d, %c)
- 문자상수와 그에 해당하는 아스키코드 값은 크기가 같으므로 어떤 변환문자열을 사용하느냐에 따라 정수값이 출력되거나 문자가 출력된다.
정수값 65 -> 0100 0001 -> %d사용 -> 65
문자상수 'A" -> -> %c사용 -> A
- 특정 아스키코드값에 해당하는 문자를 확인하는 코드
int a;
printf("아스키코드값을 입력 : ");
scanf("%d", &a);
printf("아스키문자는 %c이다.\n", a);
-출력결과-
아스키코드값을 입력 : 97
아스키문자는 a이다.
- %문자를 출력할 때는 %기호를 두 번 사용
printf("%%"); -> %출력됨
예시문제3
- 정수값과 문자열 출력
예시문제4
- BMI 측정 프로그램