C언어/C언어 기초

[C언어 기초] 출력함수 puts( )와 printf( ) 공통점과 차이점

PSY_CHOPATH 2020. 6. 27. 22:23

함수 puts( )와 printf( )의 공통점

두 함수를 모두 전처리 지시자 #include헤더 파일 <stdio.h>를 입력해야 한다.

헤더 파일 <stdio.h>에는 표준 입출력 함수를 위한 함수 원형이 들어있으며

puts( )와 printf( )는 모두 출력함수이기 때문에 <stdio.h>가 필요한 것이다.

#include <stdio.h>

 

출력하길 원하는 문자열을 괄호( )안에 큰 따옴표""를 넣어 표현이 가능하다.

puts("어이 둘리");	// puts 함수 사용 예시
printf("도우너 어서오고");	// printf 함수 사용 예시
어이 둘리
도우너 어서오고

함수 puts( )

문자열(string)을 출력하는 함수, 오직 문자열!! 만 출력하는 역할이다. 그냥 문자열.. 오직 문자열..

특징으로는 문자열 출력 후 줄 바꿈을 시전 한다는 점이 있다.

 

이 특징을 활용해서 공백 문자열을 출력하는 puts("");를 만들어서 한 줄을 비우는 스킬을 사용할 수 있다.

printf("\n");보다 puts("");가 한 줄 비울 때 더 빨라서 자주 사용한다.

 

아래 예제를 통해 확인해보자.

#include <stdio.h>

int main(void)
{
	puts("엄");
	puts("");
	puts("준");
	puts("");
	puts("식");

	return 0;
}





함수 printf( )

문자열 및 다양한 정보를 서식화 하여 출력하는 함수다. puts( )는 단순히 문자열만을 출력하는데 그쳤다면, printf( )는 문자열뿐만 아니라 정수, 실수, 문자를 출력할 수 있다. puts( )가 할 수 있는 기능을 포함하여 더 많은 정보를 출력할 수 있으니 printf( )는 사실상 puts( )의 상위 호환이다.

 

puts( )가 문자열 출력 후 줄 바꿈을 했다면 printf( )는 그런 거 없다.

#include <stdio.h>

int main(void)
{
	printf("세");
	printf("로");
	printf("드");
	printf("립");
	printf("실");
	printf("패");

	return 0;
}
세로드립실패

 

따라서 puts( )처럼 문자열 출력 후 줄 바꿈을 하고 싶다면 제어 문자 \n을 큰 따옴표 안에 넣어야 한다.

줄 바꿈의 관점에서 puts(""); = printf("\n"); 둘은 같은 기능을 한다고 볼 수 있겠다.

 

#include <stdio.h>

int main(void)
{
	printf("세\n");
	printf("로\n");
	printf("드\n");
	printf("립\n");
	printf("성\n");
	printf("공\n");

	return 0;
}





 

앞에서 설명했듯이 문자열뿐만 아니라 정수, 실수, 문자를 출력할 수 있다.제어 문자열과 출력 변수를 적절히 활용해야 한다. printf( )의 사용법은 따로 문서를 만들어서 거기서 설명해야겠다. puts( ) 보다 기능이 매우 다양해서 그게 좋을 듯

#include <stdio.h>

int main(void)
{
	printf("아이언맨은 %d년에 개봉했다.", 2008);

	return 0;
}
아이언맨은 2008년에 개봉했다.