printf 함수
문자열을 출력하는 함수
1 2 3 4 5 6 7 8 9 10 11 | #include<stdio.h> int main() { printf("I like puppy! \n"); printf("I like C! \n"); printf("I need a job \n"); return 0; } |
I like puppy!
I like C!
I need a job
쉽게 문자열을 출력할 수 있다. 문자열 안에 있는 \n은 바로 특수문자,이스케이프 시퀸스(excape sequence) 라고 한다.
예를들어
앞집 강아지가 말했다. "멍~! 멍~!" 정말 귀엽다.
라는 문장은 출력하려면 문제가 존재한다.
printf("앞집 강아지가 말했다. "멍~! 멍~!" 정말 귀엽다.");
위와 같이 출력을 하면
"앞집 강아지가 말했다." < 하나의 문자열
멍~! 멍~! < 에러
"정말 귀엽다" 문자열
위처럼 에러가 발생한다. 이 문제를 해결하고자 특수문자가 존재한다.
큰 따옴표는 문자열의 시작과 끝으로 해석이 되므로 중간에 쓰기 위해선 따옴표 앞에 \ 문자를 붙여주면 된다.
printf("앞집 강아지가 말했다. \"멍~! 멍~!\" 정말 귀엽다.");
특수문자에는 여러개가 있지만 몇가지만 소개하겠다.
\a 경고음 \n 개 행 \v 수직탭
\b 백스페이스 \r 캐리지 리턴 \? 물음표 출력
\f 폼피드 \t 수평 탭 \\ 역슬래쉬 출력
printf의 f는 (formatted(서식이지정된)) 을 의미한다.
서식이 지정된 형태의 출력이라는 것은 출력양식이 만들어진 상태에서 출력을 진행한다는 뜻이다.
printf함수를 이용하면, 문자열 안에 정수나 실수를 포함해서 출력하는 등의 출력양식을 직접 지정할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 | #include<stdio.h> int main() { int myAge=12; printf("제 나이는 10진수로 %d살,16진수로 %X살 입니다.\n",myAge,myAge); return 0; } |
제 나이는 10진수로 12살,16진수로 C살입니다.
%d %X는 서식문자라고 하는데 이를 이용해 서식을 지정한다.
첫 번째 인자로 우리가 지정한 서식화된 문자열을 전달하고 있고, 그 안에는 두개의 서식문자가 있다.
이 둘에 대한 출력대상이 바로 그 뒤에 이어지는 두 번째 인자와, 세 번째 인자를 통해서 전달된다.
서식문자의 종류
서식문자 출력대상 출력 형태
%d char, short, int 부호 있는 10진수 정수형
%o unsigned int 부호 없는 8진수 정수형
%X unsigned int 부호 없는 16진수 정수형
%f float, double 10진수 방식의 부동소수점 실수
%c char, short, int 값에 대응하는 문자
%s char* 문자열
%p void* 포인터의 주소 값
8진수를 8진수답게, 16진수를 16진수답게 출력하고 싶다면, %o와 %x사이에 #을 넣어주면 된다.
%o %#o = 7 07
%x %#x = d 0xd
%s를 이용한 문자열의 출력
1 2 3 4 5 6 7 8 9 | #include<stdio.h> int main() { printf("%s %s %s\n","AAA","BBB","CCC"); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include<stdio.h> int main() { int n1,n2,n3; printf("세개의 정수 입력:"); scanf("%d %o %x",&n1,&n2,&n3); printf("세개의 정수 10진수 출력:%d %d %d",n1,n2,n3); return 0; } |
'programming > C' 카테고리의 다른 글
C// 조건에 따른 흐름의 분기 (0) | 2017.12.11 |
---|---|
C // 반복문 (0) | 2017.12.07 |
C // 상수와 기본 자료형 (0) | 2017.12.01 |
C // 변수와 연산자 (0) | 2017.11.28 |
C // C의 기본 (0) | 2017.11.27 |