티스토리 뷰

반응형

이전 글

2020/12/20 - [코딩 공부] - C언어 기초 : Escape 문자

 

C언어 기초 : Escape 문자

이전 글 2020/12/19 - [코딩 공부] - C언어 기초 : C언어 프로그래밍 시작하기 C언어 기초 : C언어 프로그래밍 시작하기 이전 글 2020/12/19 - [코딩 공부] - C언어 기초 : C언어란? C언어 기초 : C언어란? 요즘

hgu-can.tistory.com

 

 

 

이번 포스트에서는 서식 문자에 관해 알아보겠습니다. 

 

1. 서식 문자(제어 문자)는 뭘까?

 

값을 출력하기 위한 저장 공간을 지칭하는 것으로 라이브러리 이름이라고 생각하시면 됩니다. 

컴퓨터에게 이 라이브러리에 있는 값을 출력해라고 하는 것이죠. 

 

서식 문자에는 다음과 같은 것들이 있습니다. 

서식 문자 기능
%d 10진수(Decimal) 출력
%f 부동소숫점(float) 출력
%lf 부동소숫점(double) 출력
%c 단일 문자 출력
%s 문자열(홍길동 같은 이름처럼 두 글자 이상 문자들) 출력
%o 8진수(Octal) 출력
%x 16진수(HexaDecimal) 출력
%p 주소값 16진수 출력

여기서 자주 쓰는 것은 %d, %f, %c, %s 네 가지입니다. 

처음에는 저 네 가지만 알고 계셔도 충분합니다. 

 

그럼 코드 블록에 이렇게 적어봅시다. 

 

F9를 눌러 실행하면 위와 같이 실행됩니다. 

5번째 줄 printf("%d + %d = %d\n", 5, 10, 5 + 10); 에서 printf 함수는 큰 따옴표 안의 글자들만 출력하고 큰 따옴표 다음에 콤마 ' , ' 를 찍고 적는 문자들은 출력하지 않습니다. 

큰 따옴표 다음 콤마 뒤에 쓰는 문자들은 큰 따옴표 안에 쓴 각 서식 문자들에 대입되는 글자들입니다. 

printf("%d", 5);

이렇게 쓰면 %d에 저장된 것을 출력하는데, 그 중 5를 출력해라 이런 의미입니다. 

5번째 줄에서는 정수를 저장하고 있는 서식 문자 %d가 세 번 사용되었기 때문에 콤마 뒤에 대입할 숫자도 세 가지를 적어주는 것입니다. 

printf("%d + %d = %d", 5, 10, 5 + 10); => 5 + 10 = 15 와 같은 의미입니다. 

여기까지 이해하셨으면 다음 줄 부터는 이해가 쉬우실 것입니다. 

 

6번째 줄도 비슷하지만 %d가 두 번만 사용되었는데 콤마 뒤에 대입할 문자는 세 개입니다. 

그렇기 때문에 앞의 5, 10 두 가지만 출력되었습니다. 

7번째 줄은 %d는 세 번 사용되었지만 대입할 문자는 두 개만 있고 마지막으로 대입할 값이 지정되지 않아서 합계값이 제대로 출력되지 않고 이상한 숫자가 나왔습니다. 

9번째 줄은 소숫점을 표현하는 실수형 상수의 서식 문자 %f를 사용하고 콤마 다음에 10.5를 대입했기 때문에 제대로 출력되었습니다. 

하지만 10번째 줄은 대입한 값은 소숫점을 가진 숫자인데 큰 따옴표 안에서 사용한 서식 문자는 정수형 %d이기 때문에 값을 찾지 못하고 0이 출력되었습니다. 

11번째 줄 또한 서식 문자는 소숫점을 표현하는 %f를 썼지만 대입할 숫자는 정수이기 때문에 0.000000이 출력되었습니다. 

 

그리고 13번째 줄처럼 f 앞에 .숫자를 붙여서 쓰면 소숫점 뒤 그 숫자만큼의 자릿수만 표시하라는 뜻입니다. 

%.2f 는 실수를 출력하는데 소숫점 뒤 2자리까지만 표시하라는 뜻이죠. 

소숫점 뒤 한 자리만 출력하고 싶다면 %.1f 라고 쓰면 되고 네 자리를 표시하고 싶다면 %.4f 라고 쓰시면 됩니다. 

 

 

2. 아스키 코드

 

컴퓨터는 0과 1 숫자 두 개로 모든 정보를 저장하기 때문에 당연히 문자도 숫자로 저장되어 있습니다. 

이 때 어떤 숫자에 어떤 문자를 저장해놓냐에 따라 인코딩 방식이 여러 가지가 있는데 일반적으로 많이 사용하는 것이 아스키 코드입니다. 

 

이런 표가 있는데 세세히 기억하실 필요는 없고 아직은 이런 것이 있구나 정도로 알고 계셔도 충분합니다. 

 

코드 블럭에 이렇게 적어 볼까요?

 

그러면 위 아스키 코드 표 처럼 문자가 저장된 숫자를 보여줍니다. 

10번째 줄 '1' 처럼 작은 따옴표를 쓰면 일반 숫자가 아니라 아스키 코드에 저장된 문자로 표현한다는 뜻인데 그래서 1+1=2가 아닌 아스키 코드에 저장된 숫자로 계산한 결과가 나왔습니다. 

위에 올려놓은 표로 확인해보시면 됩니다. 

 

그리고 11번째 줄의 문장처럼 %s 서식 문자에 문자열을 대입하기 위해서는 " " 큰 따옴표를 써 줘야 합니다. 

큰 따옴표를 쓰지 않거나 작은 따옴표를 쓰면 프로그램이 실행되지 않거나 실행되어도 문장이 출력되지 않습니다. 

 

다음 포스트에서는 2진수, 10진수, 16진수 등 진법에 관해 알아보겠습니다. 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함