표준 입출력

표준 입출력의 정의

  • 프로그램이 외부(사용자나 다른 프로그램)와 데이터를 주고받는 기본적인 입력 장치출력 장치
  • 운영체제가 모든 프로세스가 사용할 수 있도록 미리 정의해 둔 기본적인 데이터 통신 채널
구분 영문 약어 설명
표준 입력 standard input stdin - 프로그램으로 데이터가 들어오는 통로
- 보통 키보드가 기본 입력장치
표준 출력 standard output stdout - 프로그램에서 데이터가 나가는 통로
- 보통 모니터(콘솔) 가 기본 출력장치
표준 에러 standard error stderr - 프로그램이 오류 메시지를 출력하는 통로
- 표준 출력과 분리(별도의 스트림) 되어있음
- 따라서 오류메시지만 따로 처리/저장할 수 있음

별도 설정이 없는 경우 표준 입력은 키보드, 표준 출력은 콘솔이 된다.

입출력의 종류

  • 입력과 출력에는 여러 가지 종류가 있다.
  • 어떤 것을 표준 출력, 표준 입력으로 할지 정할 수 있다.
  • 표준 입출력을 바꾸는 방법은 (1) 운영체제 설정 변경 (2) 파이프( )를 통한 리다이렉션 이 있다.
구분 예시
입력 키보드, 마우스, 터치스크린, 스캐너, 마이크, 웹캠, 네트워크 인터페이스 카드 ..
출력 모니터, 프린터, 스피커, 플로터, 네트워크 인터페이스 카드 ..

C 언어의 표준 입출력 함수

함수의 정의

  • 특정 작업(기능)을 수행하도록 설계된 코드 블럭
  • 처리할 데이터를 입력으로 받고, 이를 정해진 코드에 따라 처리한 뒤, 처리결과를 출력한다.
1
2
3
4
5
6
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {    // argc, argv : 입력(input)
	printf("Hello, %s!\n", argv[1]);  // 함수의 처리
	return EXIT_SUCCESS;              // EXIT_SUCCESS : 출력(output)
}

C 언어의 표준 입출력 함수의 종류

구분 함수 설명
입력 scanf() 키보드를 통해 1개 이상의 자료를 입력받는다.
  getchar() 키보드를 통해 1개의 문자를 입력받는다.
  gets() 키보드를 통해 문자열을 입력받는다.
출력 printf() 화면에 여러 종류의 자료를 출력한다.
  putchar() 화면에 1개의 문자를 출력한다.
  puts() 화면에 문자열을 출력한다.
  • 이들은 표준 입출력 라이브러리 <stdio.h>에 정의되어 있다.
  • 입력과 출력 함수가 여러 종류인 이유는 다음과 같다.
  • (1) 데이터 처리 단위에 대한 요구사항이 다른 다양한 경우에 대응하기 위해
  • (2) 안전성 확보 : scanf 경우 크기가 한정되지 않아 버퍼 오버플로 문제 야기 가능

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments