[C언어] 문자 입출력 함수 getchar() 와 putchar()
문자 입출력
이미 C언어를 시작하신분이라면 형식지정자 %c를 사용하여 printf("%c",ch) 와 scanf("%c",&ch)로 문자의 입출력을 하실수 있을것입니다. 이번 포스팅에서는 이미 알고있던 입출력 함수가 아닌 문자의 입출력만을 위해 만들어진 getchar() 와 putchar()에 대해 알아보겠습니다.
문자 입력 함수 getchar()
getchar()는 전달인자를 사용하지 않습니다. getchar() 함수는 읽은 문자를 반환하는 역할을 합니다.
scanf("%c",&ch);
ch = getchar();
2열의 getchar()함수는 1열의 scanf("%c",&ch)와 같은 효과를 갖습니다.
문자 출력 함수 putchar()
putchar()함수는 전달인자를 출력합니다.
printf("%c",ch);
putchar(ch);
2열의 putchar(ch) 함수는 1열의 printf("%c",ch) 와 같은 효과를 갖습니다.
getchar() 와 putchar()는 문자 입출력만을 다루기 때문에 printf() 와 scanf()와 다르게 형식 지정자가 필요없습니다. 그럼 문자를 입출력하는 예제를 살펴보도록 하겠습니다.
#include <stdio.h>
int main () {
char ch;
printf("Enter character: ");
ch = getchar();
printf("Character entered: ");
putchar(ch);
printf("\n");
return(0);
}
//실행 결과
//Enter character: b
//Character entered: b
위는 문자 하나를 읽고 읽은 문자를 출력하는 프로그램입니다. 그러면 문장을 읽고 출력하는 방법은 어떻게 해야할까요? while()문을 사용하면되는데 이는 아래 예제에서 확인해보겠습니다.
#include <stdio.h>
int main () {
char ch;
printf("input sentence:");
ch = getchar();
while(ch != '\n') //문장 라인의 끝이 아니면
{
putchar(ch);
ch = getchar(); //문자를 읽는다
}
putchar('\n');
return(0);
}
//실행 결과
//input sentence:hello world
//hello world
while(ch != '\n') 을 이용해서 문장의 끝(\n)을 입력받을때 까지 getchar(),putchar()를 반복해주면 문장의 입출력이 가능해집니다. while() 안의 조건식에 getchar()를 넣어 작성하면 더 간결한 코드 작성이 가능합니다.
#include <stdio.h>
int main () {
char ch;
printf("input sentence:");
while((ch = getchar()) != '\n') //문장 라인의 끝이 아니면
{
putchar(ch);
}
putchar('\n');
return(0);
}
while((ch = getchar()) != '\n') 을 사용하여 입력과 검사를 하나의 표현식으로 구현하였습니다. 이는 ch에 값을 대입, ch를 '\n'과 비교하는 것을 결합한 것입니다.
감사합니다.
'ET의 공부 > C언어' 카테고리의 다른 글
[C언어] 함수의 전달인자 (0) | 2020.12.20 |
---|---|
[C언어] 함수의 작성과 사용 (1) | 2020.12.20 |
[C언어] switch break문 (0) | 2020.12.19 |
[C언어] continue 와 break (0) | 2020.12.19 |
[C언어] 조건연산자 ?: (0) | 2020.12.17 |