오늘은 C언어의 함수 getchar에 대해 알려드리겠습니다. getchar는 무엇일까요? C언어에서 한 문자를 읽어오는 함수입니다. 키보드같은 입력장치에서 문자를 읽어오는 방법이죠. 처음으로 C언어를 사용하면 일반적으로 겪는 문제부터, 사용 예시 등 다양하고 차근차근히 안내해드리겠습니다. 따라오세요!
일반적으로 겪는 문제
일반적으로 C언어를 처음하는 사용자가 겪는 문제는 이렇습니다.
숫자를 입력받고 문자를 입력받는 코드를 작성해보겠습니다.
코드는 이렇습니다.
#include <stdio.h>
int main() {
int input_number;
char input_ch;
printf("숫자를 입력하세요: ");
scanf("%d", &input_number);
printf("글자를 입력하세요: ");
scanf(" %c", &input_ch);
printf("------결과------\n");
printf("숫자는 %d\n언어는 %c", input_number, input_ch);
}
오잉? 단어를 입력하고싶은데 입력은커녕 그냥 출력이 이상하게 나와버립니다. 나오지 않는 이유는 개행문자를 입력받았기 때문에 input_ch에는 현재 (' ') 공백문자가 입력되어 있고, 한개의 단어를 입력받기 떄문에 g라는 언어는 입력되지 않은 상태로 되어있습니다.
이걸 어떻게 해결해야할까요?
여기서 바로 getchar함수를 이용해주면 문제 해결이 가능합니다.
getchar함수 사용해서 문제해결하기
#include <stdio.h>
int main() {
int input_number;
char input_ch;
printf("숫자를 입력하세요: ");
scanf("%d", &input_number);
// 입력 버퍼에서 개행 문자를 제거하기 위해 getchar 사용
getchar();
printf("글자를 입력하세요: ");
scanf(" %c", &input_ch);
printf("------결과------\n");
printf("숫자는 %d\n언어는 %c", input_number, input_ch);
}
문제해결은 됐을까요? 결과값은 어떻게 다를까요?
getchar로 개행문자(' ') 를 없애줬기 때문에 결과값이 올바르게 나오는 모습을 확인할 수 있습니다!
문제를 해결했으니 다음으로 많이 나오는 과제인 getchar함수를 구현하는 프로그램을 작성해보도록 하겠습니다.
getchar함수 구현하기
1. 일반적인 구현방법
#include <stdio.h>
int make_Getchar() {
int ch = getchar(); // 문자 읽기
return ch; // 읽은 문자 반환
}
int main() {
int input_char;
printf("문자 입력 : ");
input_char = make_Getchar(); // 사용자 정의 getchar 함수 호출
printf("입력한 문자 : %c\n", input_char);
}
2. for문을 이용해서 여러번 입력받기
#include <stdio.h>
int main() {
int input_char;
int num_inputs;
printf("몇 번 문자를 입력하시겠습니까? ");
scanf("%d", &num_inputs);
getchar(); //버퍼비우기
for (int i = 0; i < num_inputs; i++) {
printf("문자 입력: ");
input_char = getchar();
printf("입력한 문자: %c\n", input_char);
getchar(); //버퍼비우기
}
return 0;
}
getchar를 사용하면서 for문을 이용해 여러개를 반복해서 입력받고 바로 출력하는 프로그램 예시입니다.
3.while문을 이용해서 여러번 입력받기
#include <stdio.h>
int main() {
int input_char;
int num_inputs;
int i = 0;
printf("몇 번 문자를 입력하시겠습니까? ");
scanf("%d", &num_inputs);
getchar(); // 버퍼 비우기
while (i < num_inputs) {
printf("문자 입력: ");
input_char = getchar();
printf("입력한 문자: %c\n", input_char);
getchar(); // 버퍼 비우기
i++;
}
return 0;
}
마지막으로 while문을 활용하여 getchar를 입력받는 방법까지 소개해드렸습니다. 공부에 도움이 됐으면 좋겠습니다!
'C언어 > 함수' 카테고리의 다른 글
[C언어] strlen 문자열 길이를 구하는 함수 : 사용 예시 형식 구현 (0) | 2023.12.03 |
---|---|
[C언어] fopen fclose 함수 : 파일을 열고 닫는 함수 예시 종류 (0) | 2023.12.03 |
댓글