티스토리 뷰

목차

     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는 실행시 진짜 소리가 납니다 ㅎㅎ