[C언어] 문자 입출력 함수 getchar() 와 putchar()

ET의 공부/C언어|2020. 12. 20. 00:33

문자 입출력

이미 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

댓글()