전 포스팅으로 문자와 문자열에 대해 알아보았다.

이번 포스팅으로는 문자와 문자열의 입출력 라이브러리에 대해 알아보겠다.

문자 입출력 라이브러리

문자 입출력 라이브러리는 보통 %c 형식 지정자를 사용하며 문자 하나를 대상으로 한다.

우리가 잘 알고있는 printf(“%c”,c);와 scanf(“%c”,&c)도 문자 하나를 대상으로하는 문자 입출력 라이브러리다.

그 밖의 함수들은 아래에 정리하였다

   
int getchar(void) 하나의 문자를 읽고 반환한다
int _getch(void) 버퍼를 사용하지 않고 하나의 문자를 읽고 반환한다
void putchar(int c) 변수 C에 저장된 문자를 출력한다
void _putch(int c) 버퍼를 사용하지 않고 변수 C에 저장된 문자를 출력한다

여기서 우리는 버퍼의 차이를 알아야한다.

아래는 버퍼의 차이를 알 수 있는 예제이다

#include<stdio.h>
#include<conio.h>
int main() {
	int ch;
	printf("putchar(ch) 실행 q를 누르면 종료\n");
	while ((ch = getchar()) != 'q') //_getch로 바꿔서 해보세요
	{
		putchar(ch);
	}
	printf("_putch(ch) 실행 w를 누르면 종료\n");
	while ((ch = getchar()) != 'w') //_getch로 바꿔서 해보세요
	{
		_putch(ch);
	}
}

_을 쓰기 위해서는 conio.h 헤더가 필요하다

버퍼가 있다면 입력을 받고 엔터가 눌릴 때까지 버퍼에 저장한다. 그러나 _putch같이 버퍼가 없으면 엔터가 눌리지 않아도 바로 실행된다.

버퍼에 따라 응답성, 문자수정여부같은 차이점이 생긴다. 버퍼를 적절이 사용하자.

다음은 포스팅에서는 문자열의 입출력 라이브러리에 대해 알아보겠다

카테고리:

업데이트: