c

[C언어] printf 함수 사용법, C언어로 글자 출력하기

jinhyuk._.dev 2022. 10. 19. 22:18

 printf 함수 사용법, C언어로 글자 출력하기

printf 함수는 코드에 문자, 숫자, 특수문자 등등의 문자들을 화면을 통해 보여줍니다.

 

오늘 배울 내용 키워드 : printf, 서식지정자, 이스케이프 시퀀스

개발환경 : visual studio 2022

개발환경이 준비가 안되신 분들은 밑을 클릭하셔서 설치를 먼저 진행해주세요.

 

 

printf

printf() 함수는 C언어의 표준 출력 함수로, 여러 종류의 데이터(data)를 다양한 서식에 맞춰 출력할 수 있게 해줍니다.

printf() 함수의 원형은 다음과 같습니다.

함수 원형

#include <stdio.h>
int printf(const char * restrict format, ...);

 

printf() 함수의 f는 formatted의 약자이며, 서식화된 출력을 지원한다는 의미입니다.

이 함수는 출력할 데이터를 어떤 서식에 맞춰 출력할지 서식 지정자(format specifier)를 통해 직접 지정할 수 있습니다.

즉, 보여줄 데이터를 정수, 실수, 문자, 문자열, 특수문자 등을 형식에 맞춰서 보여준다는 의미입니다.

서식지정자는 밑에서 다루겠습니다.

 

코드를 넣고 테스트 를 해보겠습니다.

 

코드

-------------------------------------------------------------------

#include <stdio.h>

int main()
{
printf("Hello World");
return 0;
}

-------------------------------------------------------------------

 

결과

 

printf의 " " 안에 출력하고싶은 것들을 넣으면 출력이 가능합니다. 

그러면 이제 "" 안에 넣는 것이 아닌 서식지정자를 통해 출력을 해보겠습니다.

 

코드

-------------------------------------------------------------------

#include <stdio.h>

int main()
{
int a = 10; 
printf("%d",a);
return 0;
}

-------------------------------------------------------------------

 

결과


a 라는 곳에 10을 넣고 출력을 하였습니다.

%d 를 통해서 10을 출력하였습니다. %d 를 통해서 정수를 출력할 수 있습니다.

서식 지정자(format specifier)

앞선 예제에서 두 번째 printf 함수에 나온 '%d'와 같은 문자를 서식 지정자(format specifier)라고 합니다.


C언어에서 사용되는 대표적인 서식 지정자는 다음과 같습니다.

%c 하나의 문자
%s 문자열
%d 부호 있는 10진 정수
%i 부호 있는 10진 정수 (%d와 동일)
%f 고정 소수점으로 표현한 실수 (소수점 이하 6자리까지 표현)
%o 부호 없는 8진 정수
%u 부호 없는 10진 정수
%x 부호 없는 16진 정수 (소문자 사용)
%X 부호 없는 16진 정수 (대문자 사용)
%e 부동 소수점으로 표현한 실수 (e-표기법)
%E 부동 소수점으로 표현한 실수 (E-표기법)
%g 값에 따라 %f나 %e를 사용함.
%G 값에 따라 %f나 %E를 사용함.
%% 퍼센트(%) 기호 출력

코드

-------------------------------------------------------------------

#include <stdio.h>

int main()
{
printf(" %c\n", 'a');  // 문자
printf(" %s\n", "개발은 ㅠㅠㅠㅠ");  // 문자열  
printf(" %f\n", 0.123456);
printf(" %f\n", 0.123456789); // 소수점 6자리까지만 표현  
printf(" %o\n", 123); // 8진 정수
printf(" %x\n", 123); // 16진 정수  
printf(" %g\n", 0.001234); // 값에 따라 %f나 %e
printf(" %g\n", 0.00001234); // 값에 따라 %f나 %e
printf(" %G\n", 0.000001234); // 값에 따라 %f나 %E
}

-------------------------------------------------------------------

 

결과

서식지정자에 맞춰서 출력을 해보았습니다.

그러면 코드중에 \n 이 보이는데 ( \  이거는 역슬래시라는 것으로 엔터키 위에 보시면 있습니다.)

\n 은 무엇일까요??

 바로 '이스케이프 시퀀스' 라는 것 입니다.

이스케이프 시퀀스(escape sequence)

앞선 예제의 printf() 함수에 나온 '\n'과 같은 문자를 이스케이프 시퀀스(escape sequence)라고 합니다.
이러한 이스케이프 시퀀스는 프로그램의 결과가 화면에 출력될 때 사용하게 될 특수한 문자를 위해 만들어졌습니다.

 

C언어에서 사용되는 이스케이프 시퀀스는 다음과 같습니다.

\' 작은따옴표
\" 큰따옴표
\? 물음표
\\ 백슬래시(\)
\a 경고음 발생
\b 백스페이스(backspace)
\n 줄 바꿈(new line)
\r 캐리지 리턴(carriage return)
\t 수평 탭(tab)
\v 수직 탭(tab)
\f 폼 피드(form feed)

위의 코드들을 넣어서 테스트를 해보면 아~ 이런거구나 라고 알 수 가있습니다.

그리고 \ 뒤에는 특수문자를 출력할수 있다고 생각하면 이해하기 쉬울듯합니다.

그리고 \a는 실행시 진짜 소리가 납니다 ㅎㅎ