본문 바로가기
C언어

세이버의 C언어 강의 4강_좀 더 복잡하게 출력하기

by 비원(Be one) 2018. 10. 6.
반응형

* 본 강의를 유튜브에서 보실 수 있습니다.

https://poci.tistory.com/167

 

출력함수를 응용하는 방법?? printf 업그레이드 하기/세이버의 C언어 강의 4강

여러분 안녕하세요. 세이버입니다. 유튜브에 C언어 강의 4강이 업로드되었습니다. printf를 이용한 출력을 업그레이드 하는 방법을 중점적으로 다뤘습니다. 어떻게 하면 printf를 업그레이드 할 수

poci.tistory.com

 

여러분 안녕하세요. 세이버입니다.

 

3강에서는 printf() 함수를 이용해서 한 문장만 출력하는 방법을 배웠습니다.

 

세이버의 C언어 강의 3강_간단한 문장 출력하기 : https://poci.tistory.com/5

 

세이버의 C언어 강의 3강_간단한 문장 출력하기

여러분 안녕하세요. 세이버입니다. 1강과 2강에서는 C언어와 컴파일러에 대하여 간략하게 설명만 해드렸습니다. 세이버의 C언어 강의 1강_C언어란 무엇인가?? : https://poci.tistory.com/3 세이버의 C언어 강의..

poci.tistory.com

간단하게만 출력할 수 있다고 프로그래머로 대우받기에는 세상이 만만하지 않습니다.

고로 이번 강에서는 조금 더 복잡한 출력을 하는 법을 알아보겠습니다.


1. 여러 줄로 출력하기

지난 강에서는 printf() 함수로 출력을 한 줄만 해봤습니다.

하지만 실제 프로그래밍을 할 때에는 한 줄의 출력값으로는 일을 처리할 수 없는 경우가 많습니다.

그러니 여러 줄을 출력하는 방법을 알려드리겠습니다.

 

여러줄을 출력할 때는 다른 함수를 쓰나??

여러 줄을 출력할 때도 똑같이 printf() 함수를 사용합니다.

 

위와 같이 두 줄로 출력하기 위해서 저렇게 쓰시면 오류납니다.

 

이렇게 오류납니다.

그럼 printf() 함수를 두 개 쓰면 안 될까요??

 

응 ~ 안돼 ~~ ㅋ
그럼 뭐 어쩌라고 ....

우리가 흔히 줄을 띄울 때 사용하는 엔터키도 하나의 문자입니다.

근데 다른 문자와는 달리 눈에 보이지가 않아서 엔터키를 문자로 표현을 못할 뿐입니다.

그래서 C언어는 엔터키를 표현할 문자를 제공합니다.

이것을 개행(改行)문자라고 하고 \n 씁니다.

 

코드에서는 \가 아니라 역슬래쉬로 표시됩니다.

위에처럼 printf 함수를 두 개 사용해도 되고,

printf("안녕하세요.\nPOCI입니다.");

이렇게 하나의 printf 함수로 사용해도 무방합니다.

\n이 있는 곳이 엔터와 같은 역할을 한다고 보시면 됩니다.

 

이런 식으로 개행문자를 사용해서 여러 줄을 출력할 수 있습니다.

 

 

2. 숫자 출력하기

숫자 출력하기??

그냥 printf("8"); 이런 식으로 하면 되는 거 아닌가요?

그것 맞습니다. 그런데 여기서 말할 건 그렇게 간단한 게 아닙니다.

이 부분은 초보자분들은 조금 어렵다고 생각할 수도 있기에 직접 실습해가며 보시기를 추천합니다.

 

10452422+1956838의 결과값을 출력해야 한다고 가정해봅시다.

변수를 사용할 수 없다고 할 때 여러분은 어떻게 하시겠습니까???

(변수에 대한 설명 : https://poci.tistory.com/8)

 

이렇게 하면 될까요??
당연히 안되겠죠??

printf() 함수의 ""부분의 내용은 그냥 출력만 되는 내용입니다.

그래서 ""안에 수식을 넣는다고 해서 계산되어 출력되지는 않습니다.

 

방법은 두 가지가 있습니다.

첫 번째는 계산기를 이용해 10452422+1956838를 계산한 후 결과값을 printf 함수에 넣는 것입니다.

 

이런식으로

아니 그럼 수식이 많아지거나 복잡해지면 어떡하냐고요???

뭘 어떡합니까? 계산기로 하나하나 계산해가면서 하면 되죠.

 

만약에 이렇게 가르쳐주는 컴퓨터 선생님이 계신다면 당장 환불해달라고 하세요.

 

첫 번째 방법이 어려우시다면 두 번째 방법으로 C언어의 자동 계산 기능을 사용하시면 됩니다.

C언어에는 자동으로 계산을 해주는 기능이 있습니다.

그런데 위에서처럼 printf 함수의 ""안에 수식을 넣으면 엉뚱한 출력값이 나오게 됩니다.

따라서 여러분들은 서식문자를 아셔야 합니다.

 

그건 또 뭐지...

서식문자는 입출력의 서식(형태)을 지정해주는 문자입니다.

, 출력값이 숫자인지 소수인지 문자인지를 판별해주는 문자입니다.

여기서 주제가 숫자 출력하기에 숫자 서식만 우선 알아보겠습니다.

 

먼저 계산할 수식을 pritnf 함수에 기입해줍니다.

, 위에서처럼 ""안에 쓰면 안 되니 ""밖에다가 기입해줍니다.

""과 수식 사이에 ,(쉼표)를 꼭 써야 합니다.

그런 다음 ""안에 서식문자를 넣어주면 됩니다.

여기서 출력할 값이 숫자(정수)이므로 정수형 서식문자를 써주시면 됩니다.

정수형 서식문자는 %d입니다. d인 이유는 decimal number(10진수)의 약어라서 그렇습니다.

이렇게 써주시면 10452422+1956838의 결과값이 정수형의 형태로 출력됩니다.

 

서식문자를 사용하여 ""밖에 있는 계산식의 값을 출력할 수 있습니다.

이런식으로 값을 가져와서 출력합니다.

이렇게 서식문자를 사용해 계산기 없이도 계산을 할 수 있고, 다양한 형태로 출력을 하게 할 수도 있습니다.

 

 

3. 서식문자를 응용해보자

이제 위에서 배운 서식문자를 응용하여 출력해보겠습니다.

위에서는 정수형(숫자) 서식문자만 알아봤는데, 서식문자는 다양하게 있습니다.

%d, %i 10진수 정수 (decimal number, integer)
%f, %lf 10진수 실수 (fraction)
%c 한개의 문자 (character)
%s 문자열 (string)
%x, %o 16진수, 8진수 (hexadecimal, octal)
%u 10진수 정수(양수만)
%e e표기법 실수
%E E표기법 실수
%g 소수점이 6자리 이하면 %f, 초과면 %e
%G 소수점이 6자리 이하면 %f, 초과면 %E

이렇게 구성되어 있습니다.

보통 많이 사용하는 건 %d, %f, %c, %s 정도입니다. 나머지는 알아두시기만 해도 됩니다.

 

주제 2에서는 ""안에 %d만 넣었지만 다른 문장과 서식문자를 섞어서 사용할 수도 있습니다.

이렇게 ""안에 서식문자가 아닌 다른 문장을 넣으면 서식문자가 아닌 문장은 그대로 출력되고, 서식문자는 ""밖에 있는 값을 가져옵니다.

 

그러면 서식문자를 한 번에 많이 사용할 수는 없을까요??

있습니다.

이렇게 서식문자를 많이 사용하고 ""밖에 있는 값을 늘려주시면 됩니다.

, %d와 ""밖의 값의 수는 같아야 하고, 값과 값은 ,(쉼표)로 구분하셔야 합니다.

만약 %d의 수가 다르면 오류는 안 나지만, 부족한 만큼 %d에 쓰레기 값이 들어가서 이상한 값이 나오니 주의하셔야 합니다.

위에서처럼 서식문자를 여러 개 사용하면 맨 왼쪽 서식문자는 값의 맨 왼쪽 서식문자부터 차례로 대입됩니다.

이런 식으로 여러 서식문자를 사용할 수 있습니다.

 

이렇게 해서 서식문자를 이용해 조금 더 복잡하게 출력하는 방법에 대해서 알아보았습니다.

위에서 말했다시피 이번 강부터 난이도가 하나씩 올라가기에

눈으로만 보기보단 직접 타이핑을 하면서 보시면 학습하시기 수월하실 겁니다.

다음 강에서는 서식 문자에 대해 조금 더 깊이 알아보겠습니다.


오늘도 수고하셨습니다.

 


정리

- 여러줄로 출력할 때는 개행문자 \n을 사용하자.

- 서식문자를 이용하면 계산 기능을 사용할 수 있다.

- 서식문자와 서식문자가 아닌 다른 문장을 같이 사용할 수 있다.

- 서식문자는 여러 개를 동시에 사용할 수 있다. (, 서식문자의 수와 값의 수가 같아야 한다.)

- 서식문자를 사용할 때 값과 값은 ,(쉼표)로 구분한다.


강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.

궁금하신 점이나 질문은 댓글이나 메일을 남겨주세요.

 

poci5003@gmail.com

 

 

 

 

 

 

반응형