본문 바로가기

Lang/C

[C] C 문법 공부 #2 입력 scanf(), gets(), getch(), kbhit()

728x90

# scanf()의 기본 형태

scanf("%d", &x);
정수를 입력받아 변수 x에 대입한다.

 

 

# 간단한 정수 입력 및 활용의 예

int a, b;
int sum;

printf("첫 번째 숫자: ");	// 프로그램이 실행되면 여기까지 실행된 후
scanf("%d", &a);		// 키보드로 숫자 입력 후 엔터 입력까지 대기

printf("두 번째 숫자: ");	// 입력완료하면 여기까지 실행된 후
scanf("%d", &b);		// 다시 키보드로 숫자 입력 후 엔터 입력까지 대기

sum = a + b;

printf("두 수의 합은 %d입니다.\n", sum);	// 다시 입력완료하면 여기까지 실행된다.
첫 번째 숫자: 12
두 번째 숫자: 23
두 수의 합은 35입니다.

 

# gets()의 기본 형태

gets(add);
문자열을 입력받아 변수 add에 대입한다.

scanf()는 중간 공백을 받지 않는다.
gets()는 공백을 포함한 Enter 입력 전까지의 모든 문자열을 입력받는다.

 

# scanf()로 공백있는 문자열을 입력할 경우

char add[128];

printf("scanf로 주소를 입력하세요: ");
scanf("%s", add);	// "서울특별시 중구 신당동" 입력

printf("scanf 주소: %s\n", add);
서울특별시

 

 

char add[128];

printf("gets로 주소를 입력하세요: ");
gets(add);	// "서울특별시 중구 신당동" 입력

printf("gets 주소: %s\n", add);
서울특별시 중구 신당동

 

 

# getch()

getch()는 Enter를 입력할 필요없이 키보드 키를 입력하자마자 입력처리가 된다.

게임을 만들때처럼 키보드 키 입력 즉시 반응해야하는 프로그램이라면 getch()를 사용해야 한다.
puts("아무 키나 누르세요");
getch();
puts("아무 키나 눌렀습니다");

 

# kbhit()

keyboard hit 라는 뜻으로 키보드가 눌려져있는지 참/거짓 값을 리턴하는 함수이다.

getch()는 키보드 입력값이 들어올 때까지 프로그램이 대기하게 된다.

kbhit() 함수를 사용하여 키보드가 눌러져있을 때만 getch()를 호출하여 키보드 입력값을 받도록 한다.
int ch;

if(kbhit())		// 키보드가 눌러져있을 때
{
	ch = getch();	// 키보드 입력값을 ch에 대입한다.
}
728x90