은근한

C언어 1. 표준입출력(printf,scanf,getchar,putchar),fflush(stdin) 본문

카테고리 없음

C언어 1. 표준입출력(printf,scanf,getchar,putchar),fflush(stdin)

EsJoo 2013. 10. 20. 14:11

입출력


프로그램의 입출력에 많이 사용되는 것은 표준 입력장치와 표준 출력장치 이다.


출력


printf 함수


표준출력함수에 해당하는 printf는


printf("내용");  큰따옴표 안에 내용들을 출력해준다.


printf함수는 stdio.h은 표준 입출력 동작을 지원하는 내용을 담고 있는 헤더 파일이다.


*stdio.h<standard input output>



ex)


void main()

{


printf("정수 출력%d\n",10);    //정수출력 %d


printf("실수 출력%f\n",10);    //실수출력 %f


printf("문자 출력%c\n",10);    //정수출력 %c


printf("문자열 출력%s\n",10);    //문자출력 %s


}




출력하는 값에 따라 표시문자가 제공된다. 이러한 문자를 변환문자라고 한다(conversion specifier)


변환문자


변환문자는 출력 형식을 지정해주는 문자이다



변환문자

 설명

 %c

하나의 문자 

 %d

부호있는  십진정수

 %x

부호있는  16진수 

 %o

부호있는  8진수 

 %f

부동 소수점 십진수 

 %e

부동 소수점 십진수의 지수형태 

 %s

문자열 

 %u

부호없는 십진 정수형 



이스케이프 문자(Escape Sequence)


printf함수의 인자에 포함된 내용중 (\)역 슬래쉬로 시작하는 문자들을 이스케이프 문자라고 한다.


이스케이프 문자는 출력에 필요한 제어 문자로써 줄을 분리하거나 일정 칸을 건너 띄는 등의 동작을 수행한다.



 이스케이프문자

 설명

 \a 

경고음 출력 

 \b

백스페이스 역할 

 \n

커서를 다음줄 앞으로 이동 

 \r

커서를 다음줄로 이동 

 \f

종이 출력에서 다음페이지로 이동 

 \t

(tab)간격만큼 건너띔 



입력


scanf함수


표준입력함수에 해당하는 scanf함수는


scanf("반환문자",&변수);


*tip    &변수 중에 &의 역할은 변수의 주소를 알기위해 쓰는것!


scanf함수도 표준입출력에 해당하므로 stdio.h 파일을 참조한다.


scanf함수는 형식있는 입력을 수행한다. 형식이란 입력하려는 값의 형에 따라 알맞는 변환문자를 사용해서 입력을 수행하는 것을 말한다.


getchar함수


표준입력함수에 해당하는 getchar 함수는 변수 = getchar();


stdio.h 파일 참조


getchar함수는 입력 버퍼에서 한 문자씩 읽어들이며, 키보드에 입력을 통해 알린다.


어떤 문자를 입력하든 한문자를 읽어 들이며 그 문자는 변수에 해당 문자가 입력된다.


버퍼인 엔터가 포함되므로 다음문자로 커서가 이동된다 


ex)


#include<stdio.h>


void main()

{

int score;

char ch;


printf("숫자 입력: ");


scanf("%d",&score);


printf("문자 입력: ");


ch = getchar();// 어떤 문장을 입력하던 그 문장의 첫글자만 저장 


printf("당신이 입력한 숫자는 %d이며 \n",score);


printf("당신이 입력한 문자의 첫번째 글자는 ");


putchar(ch);


}



***fflush(stdin);


위의 예제에서 문자를 입력시 다음칸으로 이동시키지 않고 하나의 문자씩 직접 입력을 받아 출력하려면


반복문과 fflush 를 이용하여 입력 버퍼를 초기화 하는 함수인 fflush 함수를 사용하면된다.