입력과 출력

io

입력과 출력은 프로그램의 일련의 과정입니다. 입력으로 프로그램에 데이터가 입력되고, 출력으로 데이터가 표현되는 과정을 가집니다.

c언어에서 입출력을 위해 여러가지 함수를 사요할 수 있지만, printfscanf에 대하여 알아보겠습니다.


출력함수 - printf()

#include <stdio.h>

int main() {
    printf("Hello world\n");
    return 0;
}

Hello World 를 출력하기 위해서도 쓰였던 printf함수는 c언어의 기본적인 출력 함수입니다.

기본적으로 문자열을 입력하면 그대로 출력하지만, 변수같은 특수한 데이터는 서식 지정자를 통해 위치를 지정하고 입력해주어야 합니다.


int num1 = 0 ;
int num2 = 1;
printf("number is %d %d\n", num1, num2);

원하는 위치에 서식 지정자를 위치시키고, 함수의 매개변수(Parameter)로 원하는 변수나, 상수를 위치하며 출력할 수 있습니다.

서식지정자에 관하여는 아래서 더 다양하게 설명하겠습니다.


입력함수 - scanf()

#include <stdio.h>

int main() {
		int num;
		scanf("%d", &num);

    printf("%d", num);
    return 0;
}

scanf는 c언어에서 사용하는 기본적인 입력함수 입니다. printf와 마찬가지로, 서식지정자 (format specifier)를 통해 입력받을 데이터를 미리 지정하고 입력 받는 구조입니다.


scanf("%d %d", &num1, &num2);

printf와 다르게, 매개변수를 입력하는 과정에서 변수 앞에 &를 작성해야 작동합니다.

&는 변수의 주소를 표시하게 해주는 키워드입니다.

입력을 받고, 변수의 메모리에 데이터를 넣는다 이해하시면 됩니다.

&와 주소에 관하여는 나중에 포인터를 설명하며 더 자세하게 설명하겠습니다.


서식 지정자 (format specifier)

데이터를 입력하거나, 출력하기 위해서 맞춰주어야 하는 키워드 입니다. 만약 서식 지정자와 다른 타입의 데이터가 있다면, 에러가 발생할 수 있습니다.

printf("%d" , /* 10진수 정수*/);

printf("%f" , /* 실수값(소숫점 6번째 자리까지 출력) */);

printf("%.4f" , /* 실수값(소숫점 4번째 자리까지 출력) */); 

printf("%o" , /* 8진수 정수 */);

printf("%x" , /* 16진수 정수*/);

printf("%e" , /* 지수표현 */);

printf("%g" , /* 자동변환 */);

정수 관련 서식 지정자 입니다. 표현 예제에는 출력으로만 표시했지만, 입력 함수에서도 활용 가능합니다.


printf("%c", /* 문자 */);
printf("%s", /* 문자열 */);

만약 문자열을 출력하고 싶다면 %c%s를 활용할 수 있습니다. 입력함수에도 동일합니다.


// 최소한 5자리를 출력, 5자리 미만시 우측 정렬
printf("%5d",/* 10진수 정수*/);

// 최소한 5자리를 출력, 공백은 0으로 출력
printf("%05d",/* 10진수 정수*/);

// 최소한 5자리를 출력, 좌측 정렬
printf("%-5d",/* 10진수 정수*/);

프로그램을 작성하다 보면, 출력과정에서 가독성을 위해 복잡하게 출력하는 경우가 있는데, 서식 지정자의 속성을 추가하여 작성하면 더 효율적으로 작성할 수 있습니다.


더 다양한 서식지정자는 이곳에서 확인 할 수 있습니다.



💡 지적 환영합니다 

Comments