본문 바로가기
C 프로그래밍

독학으로 배우는 C언어 017 다양한 입력 함수

by 솔토지빈 2024. 7. 30.
반응형

독학으로 배우는 C언어 017 다양한 입력 함수

 

1. getcher() 에 의한 입력

 

한 개의 문자만을 입력받아 변수에 저장한다.

 

실습 1: getcher() 입력

다음의 프로그램을 작성하여 ex056.c 저장하고 실행해 보자.

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { ​​​​char a; ​​​​a = getchar(); ​​​​putchar(a); ​​​​putchar('\n'); ​​​​return 0; }

 

설명 : 행 설명

- scanf() 에 의한 입력은 서식이 있는 입력문으로 문자, 수치, 문자열 등의 데이터를 모두 취급할 수 있지만, getcher()는 한 개의 문자만 입력이 가능하다.

- 여러 문자를 입력해도 첫 번째 글자만 저장된다.

- getchar() 의 형식은 변수=getchar()’ 이다.

- 프로그램을 실행하여 문자를 입력하면 입력된 문자가 변수에 기억되고 다음 명령을 실행한다.

putchar()는 하나의 문자를 출력해 주는 함수이다.

- putchar('\n')는 개행을 해준다.

 

2. getche() 에 의한 입력

 

getche() 함수는 키보드에서 한 문자가 입력되면 곧바로 입력이 실행되므로 엔터키를 누르지 않아도 된다.

getche() 함수를 사용하려면 반드시 #include <conio.h>를 선행처리기에 포함해야 한다.

 

실습 1: getche() 입력

다음의 프로그램을 작성하여 ex057.c 저장하고 실행해 보자.

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> int main(void) { ​​​​char a; ​​​​printf("한문자를 입력해 보세요"); ​​​​a =_getche(); ​​​​printf("\n"); ​​​​printf("입력된 문자 : %c", a); ​​​​return 0; }

 

설명 : 행 설명

8: 비주얼 스튜디오에서는 getche()를 사용할 수 없고 _getche()으로 사용해야 한다.

 

3. getch() 에 의한 입력

 

getch() 함수는 getche() 함수와 동일한 함수이지만 문자를 입력하면 입력된 문자가 화면에 표시되지 않는다.

getch() 또한 #include <conio.h>를 선행처리기에 포함해야 한다.

 

실습 1: getch() 입력

다음의 프로그램을 작성하여 ex058.c 저장하고 실행해 보자.

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> int main(void) { ​​​​char a; ​​​​printf("한문자를 입력해 보세요"); ​​​​a = _getch(); ​​​​printf("\n"); ​​​​printf("입력된 문자 : %c", a); ​​​​return 0; }

 

설명 : 행 설명

8: 비주얼 스튜디오에서는 getch()를 사용할 수 없고 _getch()으로 사용해야 한다.

 

4. gets() 에 의한 입력

 

gets() 함수는 문자열을 입력받을때 많이 사용한다.

puts() 와 함께 사용하면 프로그램이 실행속도를 증가시킬 수 있다.

 

실습 1: gets() 입력

다음의 프로그램을 작성하여 ex059.c 저장하고 실행해 보자.

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { ​​​​char str[100]; ​​​​printf("문자열 입력"); ​​​​gets(str); ​​​​printf("\n"); ​​​​puts(str); ​​​​return 0; }

 

5. sscanf() 에 의한 입력

 

사용할 자료를 변수에 저장하고 지정된 자료형에 맞추어 변경하여 입력 자료로 사용한다.

 

실습 1: sscanf() 입력

다음의 프로그램을 작성하여 ex060.c 저장하고 실행해 보자.

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { ​​​​char str[50] = "홍길동 340 88.5"; ​​​​char name[10]; ​​​​int tot; ​​​​float avg; ​​​​sscanf(str,"%s %d %f",name, &tot, &avg); ​​​​printf("%s %d %f\n", name, tot, avg); ​​​​return 0; }

 

설명 : 행 설명

5: str이란 변수에 이름과 총점, 평균이 공백으로 구분되어 저장된다.

6: str의 첫 번째 홍길동은 문자열 형태로 name 변수로 사용할 것을 선언한다.

7: str의 두 번째 ‘340’은 정수형 형태로 tot 변수로 사용할 것을 선언한다.

8: str의 세 번째 ‘88.5’는 실수형 형태로 avgt 변수로 사용할 것을 선언한다.

9: sscanf() 함수는 str 값을 순서대로 name, tot, avg에 할당한다. 이때 수치형 자료의 변수앞에는 &를 사용해야 한다.

 

반응형

댓글