티스토리 뷰
본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다.
표준 입력 함수
getchar() : 표준 입력 장치(키보드)가 입력한 내용이 버퍼에 들어가고 그 버퍼에 들어있는 단위문자 하나를 가져온다. 예를 들어 char ch로 캐릭터형 변수가 선언 되었다면 ch=getchar로 입력받을 수 있다. 다만 크기가 단일문자 하나로 제한되며, ENTER KEY가 단일문자의 속성을 가지고 있으므로 ENTER KEY를 입력시 getchar로 ENTER KEY가 버퍼에서 불려올 수도 있다. 이를 방지하려면 fflush(stdin) 함수를 사용한다. prtinf로 %c로 출력이 가능하며 %s로 출력 시 빌드는 에러 없이 진행되나 실제 구동에서 에러가 발생하였다. 그리고 개인적으로 실습실에서 실험한 결과 getchar(stdin) 도 같은 결과값이 나오는걸 확인 할 수 있었다. 만일 숫자를 입력한다면 ‘1’ 같이 단일문자로 입력되게 된다.
- fflush(stdin) : 버퍼를 초기화 시키는 역할을 하는 함수이다. stdin 인자는 표준 입력을 뜻하므로 이는 표준입력에 관한 버퍼를 초기화 시키는 기능을 한다. 주로 문자를 입력받을 때 ENTER KEY가 문자로 인식되어 입력되는걸 방지하기 위해 버퍼를 초기화할 때 사용된다.
gets() : 문자열을 입력 받는다. 다만 gets로 입력 받을 변수가 선언될 때 배열로 선언이 되어야 한다. 그렇지 않으면 빌드 후 구동 과정에서 에러가 발생한다. 띄워쓰기를 포함한 배열크기 만큼 문자열을 입력 받을 수 있다. 예를 들어 char str[10] 이 선언되었다고 가정하자. 이때 gets(str)로 표준입력 장치를 통해 문자열을 입력 받을 수 있다. 다만 gets 함수 자체가 배열의 크기를 알고 있지 못함으로 입력시 배열의 크기를 알지 못하면 다른 배열로 침범하기가 쉽다. getchar()와 마찬가지로 ENTER KEY를 단일문자로 인식한다.
표준 출력 함수
putchar() : getchar와 비슷하게 단일문자를 출력한다. int ch가 선언되었을 때 putchar(ch)로 사용할 수 있으며 마찬가지로 변수를 포함하지 않고 putchar(‘A’) 와 같이 단독으로 사용할 수도 있다.
puts() : gets와 비슷하게 문자열을 출력한다. int str이 선언되었을 때 puts(str)로 str의 문자열 값을 출력할 수 있다. 또한 gets와 마찬가지로 puts(“문자열”) 로도 사용이 가능하다.
그 외 비슷한 내용으로 파일 입출력 관련 함수 fopen, fprintf, fscanf, putc, getc… 등이 stdio.h 에 정의되어 있다.
'개인공부 > C and C++' 카테고리의 다른 글
struct member alignment(구조체 멤버 정렬)에 대해 (0) | 2014.01.16 |
---|---|
realloc, calloc 함수 및 예제 (1) | 2014.01.16 |
strlen, strcmp, strcat, strcpy, strrev, strtok, atoi, itoa 설명 및 함수로 구현 (0) | 2014.01.16 |
Call by value와 Call by reference에 대해 (5) | 2014.01.16 |
컴파일러(Complier), 링커(Linker)에 대해 (1) | 2014.01.16 |
오버플로우(overflow)시 전혀 다른 값이 나오는 이유 (2) | 2014.01.16 |
변수와 메모리 관계에 대해 (0) | 2014.01.16 |