C-Language/std IO

Input & Output in C language

Soul-Learner 2016. 11. 15. 16:57

C 언어의 Input, Output 다루기


C 언어에서 Input, Output (입/출력)이란 프로그램으로 데이터를 공급하거나 프로그램으로부터 외부장치(디스크, 모니터, 파일, 네트워크, 메모리)로 데이터를 내 보내는 작업을 의미한다


C 언어에서는 모든 장치에 입출력 관련 작업을 할 때 FILE *(파일 포인터)를 이용한다. 파일 포인터란 장치나 파일에 접근하여 데이터를 읽거나 쓸 수있도록 제공하는 수단을 의미한다


아래의 표준 입출력 파일 포인터는 프로그램 시작과 동시에 자동으로 생성되어 사용될 준비가 된다


표준 파일 포인터 (프로그램 시작과 동시에 자동으로 사용할 준비가 됨)


 stdin 

 표준 입력

표준입력장치 (키보드) 

 stdout

표준 출력 

표준출력장치 (모니터) 

 stderr

표준 에러출력 

표준출력장치 (모니터) 


한개의 문자를 다루는 표준 입출력 함수

  • int getchar(void) : 입력버퍼(키보드)로부터 한개의 문자를 읽어온다
  • int putchar(int c) : 아규먼트로 주어진 한개의 문자를 모니터에 출력하낟


문자열을 다루는 표준 입출력 함수

  • char *gets(char *s)       : 입력버퍼로부터 개행문자나 EOF가 읽어질 때까지 읽어온다
  • int puts(const char *s)  : 아규먼트로 주어진 문자열과 함께 개행문자를 모니터에 출력한다


서식(formatted) 문자열을 다루는 표준 입출력 함수

  • int scanf(const char *format, ...)  : 읽어올 데이터의 자료형(%s, %d, %c, %f 등)을 지정하여 해당 형식으로 읽어온다
  • int printf(const char *format, ...) : 데이터의 형식을 지정하여 모니터에 출력한다


#include <stdio.h>

int main()
{
	printf("한개의 문자을 입력하고 <엔터>키를 누르세요 :");
	int ch = getchar();          // 키보드에서 입력된 한개의 문자를 읽어온다
	
	printf("입력된 문자=");
	putchar(ch);                 // 모니터에 한개의 문자를 출력한다
	printf("\n");

	int c;

	while ((c = getchar()) != '\n' && c != EOF); // 입력버퍼에 저장된 개행문자를 읽는다(버림)

	printf("문자열을 입력하고 <엔터>키를 누르세요 :");
	char str[64];

	// 입력버퍼로부터 개행문자를 읽거나 EOF 를 만날 때까지 읽어온다
	gets(str); // 문자열을 읽어서 아규먼트로 주어진 str에 저장한다. 한글 혹은 공백포함 가능

	printf("입력된 문자열=");
	puts(str);   // 모니터에 문자열과 개행문자를 출력한다
	
	printf("문자열을 입력하세요:");

	scanf("%s", str);   // 형식(%s, %d, %c, %f 등)을 지정하여 키보드에서 입력. 한글 가능, 공백에서 잘림
	printf("입력된 문자열=%s \n", str);		// 형식 문자열을 모니터에 출력

	while ((c = getchar()) != '\n' && c != EOF); // 입력버퍼 비움

	return 0;
}