BlogMenu

Post list

2014년 7월 11일 금요일

기본 입출력 함수 print()

이번 포스팅에선 C언어에서 기본적인 입출력 함수에 대해 알아보자

C++에서도 똑같이 사용할 수 있지만

다른 형식의 입출력 함수를 제공한다. 관련 포스팅 "여기"를 참고하자.

(+) 필요한 헤더 파일 <stdio.h>

#include <stdio.h>

출력 함수 printf()

C언어에선 기본적인 출력 함수로 printf()를 지원한다.

printf()의 기본적인 사용 방법은 다음과 같다.

{1} 원하는 문장을 출력

형식 : printf("출력할 내용");

예시 :
#include <stdio.h>

int main()
{
    printf(Hello BncsReference!\n");

    return 0;
}

결과 :

위와 같이 사용하면 자신이 원하는 문자열을 콘솔에 출력 할 수 있다.

주의할 점은 \n을 입력해주지 않으면 줄바꿈이 되지 않는다는 점이다.

{2} 변수를 포함한 원하는 문장 출력

변수에관한 자세한 내용은 변수에 관한 포스팅을 참고하기 바란다.

형식 : printf("출력할 내용", 출력할 변수)

예시 :
#include <stdio.h>

int main()
{
    int score = 80;
    
    printf("Player's score : %d\n", score);

    return 0;
}

결과 :

1번의 경우와 다른 점이 두가지 있다.

첫번째는 출력하고자 하는 내용의 중간에 %로 시작하는 내용이 있다는 것이다.

%시작하는 부분을 서식문자라고 부르는데 이 부분이 변수가 출력될 곳이다.

출력하고자 하는 문장에서 변수가 위치할 곳을 표시해 주어야 한다.

다음 표에 각 변수별로 필요한 서식문자를 정리 한 것이다.

자료 타입자료형서식문자비고
정수형 int, short %d 10진 정수
%x 16진 정수
%o 8진 정수
unsigned int %u 부호 없는 양의 10진 정수
실수형 float %f 10진 실수 (float형)
double %ld 10진 실수 (double형)
%e e를 이용한 지수표기법
%E E를 이용한 지수표기법
%g 소수점 이하 자리수에 따라 %f와 %e중 선택
%G 소수점 이하 자리수에 따라 %f와 %E중 선택
문자형 char %c 문자 1개
char[] %s 문자열

(+) 특수 문자 출력

  키보드에는 스페이스바, 엔터(줄바꿈), 백스페이스, 백슬래쉬, 탭 과 같은

  여러가지 특수 문자가 있다.

  C언어에선 특수문자를 표현할 때 escape 문자라는 백슬래쉬(\)를 사용한다.

  다음 표는 몇몇 특수문자를 정리해 놓은 것이다.

특수 문자설명
\a 경고음 발생
\b 백스페이스(Backspace)
\n 줄바꿈(New Line)
\t 수평 탭
\v 수직 탭
\\ 백슬래쉬(\)
\' 작은 따옴표
\" 큰 따옴표

(+) 출력 공간 지정

  print()함수에서 서식문자를 입력 할 때

  %뒤에 일정 형식으로 출력 옵션을 설정 할 수 있다.

  %바로 뒤에 숫자를 입력하면 그 숫자만큼의 공간을 확보한다.

  공간을 확보하는 형식은 다음과 같이 3가지가 있다.

형식설명
%0n n칸만큼 확보하고 오른쪽 정렬로 출력한 뒤 빈 공간을 0으로 채운다
%-n n칸만큼 확보하고 왼쪽 정렬로 출력한다
%+n n칸만큼 확보하고 오른쪽 정렬로 출력한다 (+는 생락해도 된다.)

(+) 소수점 출력 자리수 정하기

  printf()로 소수점 출력 자리수를 정하는 방법은

  %뒤에 .을 입력하고 몇째자리 까지 출력할지를 정해준다.

  "%.2f" 라고 쓴다면 float형 변수를 소수점 둘째자리까지 출력한다는 의미이다.

  위의 공간 지정방법과 결합하여 사용하자면

  "%7.2f" 라고 쓴다면 float형 변수를 7칸을 확보하고

  오른쪽 정렬로 소수점 둘째자리까지 출력한다는 의미이다.

(+)통합 예제
#include <stdio.h>

int main()
{
    int d1 = 50, d2 = 60, x = 27, o = 10;
    short i = 40;
    unsigned int u = 100;
    float f = 3.14;
    double lf = 3.14159, e = 3.14, E = 2.27;
    char c = 'a', s[7] = "string";
    
    printf("d1 : %03d\n", d1);
    
    printf("d2 : %3d\n", d2);
    
    printf("i : %-3i\n", i);
    
    printf("x : %x\n", x);
    
    printf("o : %o\n", o);
    
    printf("u : %u\n", u);
    
    printf("f : %f\n", f);
    
    printf("lf : %.4lf\n", lf);
    
    printf("e : %10.1e\nE : %-10.1E\n", e, E);
    
    printf("c : %c\ts : %s\n", c, s);
    
    return 0;
}
결과 :

댓글 없음:

댓글 쓰기