[C언어] 3. 표준 입출력
입력과 출력
입력과 출력은 프로그램의 일련의 과정입니다. 입력으로 프로그램에 데이터가 입력되고, 출력으로 데이터가 표현되는 과정을 가집니다.
c언어에서 입출력을 위해 여러가지 함수를 사요할 수 있지만, printf
와scanf
에 대하여 알아보겠습니다.
출력함수 - 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