티스토리 뷰

C언어

C 기초 - printf 와 scanf

쉬엄쉬엄하자 2020. 1. 19. 20:09
728x90

0.

본 글은 프로그래밍을 처음 접하는 기초 수준의 분들을 기준으로 작성하였습니다. 더 심화된 내용을 원하시는 분은 참고할 내용이 없음을 미리 말씀드립니다.

본 내용에 관한 질문은 적극적으로 받고 있습니다. 더 빠른 답변을 원하시는 분은 이메일을 통해 질문 남겨주시기 바랍니다.

 

printf와 scanf는 C언어에서 기초수준의 프로그래밍부터 심화된 수준의 프로그래밍까지 아주 빈번하게 쓰이는 함수입니다. 이 두함수의 기본적인 사용법에 대해 알아보겠습니다.

 

1. printf

printf는 어떤 값을 출력하기 위해 사용됩니다. 

먼저 기본 사용방법 예시를 보겠습니다.

 

printf("변수 my_first_value 는 %d입니다", my_first_value);

첫번째 매개변수에는 출력을 할 내용을 입력합니다. 큰 따옴표 사이에 출력할 내용을 입력하면 됩니다.

 

두번째 매개변수부터는 변수를 출력하기 위해 쓰입니다. 첫번째에 매개변수에 들어간 내용중 %로 시작하는 %d같은경우에는 이후 두번째 매개변수부터 오는 변수이름과 매핑되어 변수의 값을 출력합니다.

 

따라서 위 예시에서는 %d가 그대로 출력되는것이 아닌 my_first_value의 값이 출력됩니다.

 

2개이상의 변수의 값을 출력하고 싶을 경우 %d를 2번 사용하고 두번째 매개변수부터 순서대로 출력을 원하는 변수를 넣어주면 됩니다.

 

여기서 또 중요한것이 있습니다. %d를 사용한다는것은 출력할 대상 변수의 자료형이 int형인 경우에 사용합니다.

만약 %d를 사용하였는데 int형이 아닌 변수를 사용할 경우 의도치 않은 값으로 출력될수도 있습니다. 따라서 자료형에 맞는 적절한 매개변수값을 입력하여야 합니다. 이제 각 자료형에 맞는 사용법을 알아보겠습니다.

 

int : %d (정수)

float : %f (실수)

char : %c (문자)

string : %s (문장)

bool : %d (논리)

 

대표적으로 쓰이는 자료형만 나열해보았습니다. 여기서 string을 제외한 4가지는 C언어에서 가장 많이 쓰이는 자료형이고 이 네가지만 사용하여도 거의 모든 변수를 출력할 수 있습니다. 

 

#include <iostream>

int main()
{
	char c = 'c';
	int d = 1;
	float f = 1.5;
	bool b = true;

	printf("%c %d %f %d", c, d, f, b);
}

 각 자료형 변수를 하나씩 선언하고 출력해보았습니다. 

 

printf에서는 %d처럼 문자그대로가 아니라 특수한 기능을 하는 문자들이 정해져 있습니다.

다음은 %로 시작하는 매개변수 말고 다른 특수문자를 알아보겠습니다.

 

\ : 역슬래시 입니다. 역슬래시는 프로그래밍을 할 때가 아니면 거의 쓰이지 않아서 초심자분들은 어디에 있는지 모르는 경우가 있습니다. 역슬래시는 키보드마다 조금씩 다르지만 보통 엔터키 위에 있습니다. printf에서 \는 위에서 언급한 특수한 기능을 하는 문자를 사용하기 위해 쓰입니다. 이 \뒤에 오는 문자는 printf함수가 출력할 대상으로 인식하지 않고 특수한 목적을 가진 문자로 인식합니다.

그리고 printf에서 쓰이는 특수한 기능을 가진 문자들을 그대로 출력하기 위해서도 역슬래시를 사용합니다. 첫번째 매개변수에 출력할 내용을 큰따옴표 사이에 작성한다고 하였는데요. 그렇다면 큰따옴표를 그대로 출력하고 싶다면 \" 식으로 작성하면 printf는 큰따옴표 하나를 그대로 콘솔에 출력합니다. \\ 처럼 역슬래시를 두번 연달아 사용할 경우 역슬래시 하나를 그대로 콘솔에 출력합니다. 

 

\n : 역슬래시뒤에 n을 합치면 이는 줄바꿈을 의미합니다. 따라서 printf안에 엔터를 쳐 줄을 바꾼다 하다라도 \n을 입력한것이 아니라면 줄은 바뀌지 않습니다.

printf("한줄에
		출력됩니다");
printf("두줄에 \n 출력됩니다");

 

 

\t : tab을 의미합니다. 보통 프로그래밍에서 들여쓰기를 위해 탭을 사용합니다. 설정마다 달라질 수 있지만 일반적으로 띄어쓰기 4번정도의 간격을 의미합니다.

 

2. scanf

이제 사용자로부터 입력을 받을 때 사용하는 scanf함수를 배워보겠습니다.

주로 모든 프로그램은 사용자에게 입력을 받고 입력에 따라 출력을 달리하여 결과를 도출합니다. 때문에 이후에 다양한 프로그램을 코딩하기 위해선 필수적인 함수라고 할 수 있습니다.

 

scanf함수의 기본형태부터 보겠습니다.

 

scanf("%d %d", &value1, &value2);

사용방법은 printf와 아주 유사합니다. 첫번째 매개변수로 큰 따옴표안에 입력받을 변수의 개수만큼 printf와 동일한 방법으로 작성합니다. 위 예시의경우 %d를 두번 사용하였으므로 정수 2개를 사용자로부터 입력 받습니다. 입력받은 정수 2개는 순서대로 value1과 value2 변수에 저장됩니다.

여기서 printf와 다른점은 변수앞에 &를 사용하였다는 것입니다. &기호는 C언어에서 변수의 주소값을 나타낼 때 사용합니다. 주소의 개념은 이후에 배워볼 예정이니 지금은 scanf를 사용할 때 변수앞에 &기호를 붙여야 한다는것을 외우고 있으면 될 것 같습니다.

 

3. 실습

나는 당당하게 "아니요!"라고 말하였다.  를 콘솔에 출력해보세요.

 

정수의 출력은 %d를 사용합니다. 를 콘솔에 출력해보세요.

 

개행문자는 \n 입니다. 를 콘솔에 출력해보세요.

 

콘솔에서 정수를 입력받아 해당 수를 출력해보세요.

 

콘솔에서 정수를 입력받아 해당 수가 짝수면 짝수 홀수면 홀수라고 출력해보세요.

 

콘솔에서 두수를 입력받아 두수의 곱을 출력해보세요.

 

 

'C언어' 카테고리의 다른 글

C 제7강 - 조건문과 반복문  (0) 2020.02.17
C 제6강 - 연산자  (0) 2020.01.30
C 제5강 - 자료형과 형변환  (0) 2020.01.11
C 제4강 - 변수와 자료형  (0) 2020.01.09
C 제3강 - 첫 프로젝트 시작하기  (0) 2020.01.02
댓글