<개인공부>/[C언어, C++]

[C언어/C++] getchar,putchar 문자 입출력 함수에 대해서.

BlockDMask 2019. 4. 4. 00:16
반응형

안녕하세요. BlockDMask 입니다.

오늘은 C언어, C++에서 사용할 수 있는 char 타입의 문자를 입력받고 출력할 수 있는 함수를 가지고 왔습니다.

소개해드릴 함수들은 getchar, putchar 이렇게 두가지 함수 입니다.


<목차>

1. C/C++ getchar, putchar 에 대해서

2. C/C++ getchar, putchar 예제


C++ string 문자열의 전부를 보고싶다면 [바로가기]

C/C++ strcat 문자열 이어붙이기 [바로가기]

C/C++ strcpy 문자열 복사 [바로가기]

C/C++ puts, gets 문자열 입출력 함수 [바로가기]


1. C/C++ getchar, putchar 에 대해서


▼ getchar 함수란?

헤더파일 : <stdio.h>, <cstdio>

함수원형 : int getchar(void);

함수설명 : standard input(표준입력) 으로 부터 입력받은 문자를 반환하는 함수 입니다.

간단히 이야기 하자면, 콘솔창에서 우리가 입력하는 표준 입력들을 바로 int 타입으로 하나씩 하나씩 반환해주는 함수입니다.


▽ 예시

char c = (char)getchar();

int cc = getchar();

어떤식으로 받아도 상관 없습니다. 



▼ putchar 함수란?

헤더파일 : <stdio.h>, <cstdio>

함수원형 : int putchar(int c);

함수설명 : 매개변수로 들어온 문자 c를 standard output(표준출력)에 문자로 출력해주는 함수 입니다.

콘솔창에 'c'를 반환해주는 함수 입니다. 함수 원형을 보면 매개변수의 데이터 타입이 int로 되어있는데, 이는 type casting에 의해서 int 타입으로 인식을 해서 char 타입으로 변환해서 출력을 해주게 됩니다.아스키 코드표와 대응된다고 보시면 됩니다.


예시

putchar(80);    // P 를 반환합니다.

putchar('P');    // P 를 반환합니다. 


아스키 코드표에 의하면 10진수 숫자 10은 문자 P를 뜻합니다.

char 타입으로 'P'로 보내면 char 타입이 그대로 출력이되고,

int 타입으로 80을 보내면 아스키 코드표에 의해서 P 로 출력이 됩니다.


2. C/C++ getchar, putchar 예제


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//[C언어/C++] putchar getchar example.
//BlockDMask.
#include<cstdio> // <stdio.h>
#include<iostream>    //system
using namespace std;
 
int main(void)
{
    //getchar. ---------------
    printf("[input] : ");
    int arr[10];
    for (int i = 0; i < 10++i)
    {
        arr[i] = getchar();    //열개의 char를 받습니다. 
    }
    putchar('\n');
    
    printf("[output1] : ");
    for (int i = 0; i < 10++i)
    {
        printf("%c", arr[i]);
    }
    putchar('\n');
 
    //putchar1. ---------------
    printf("[output2] : ");
    for (int i = 0; i < 10++i)
    {
        putchar(arr[i]);
    }
    putchar('\n');
    putchar('\n');
 
    //putchar2. ---------------
    printf("[putchar 48-122] : ");
    for (int num = 48; num <= 122++num)
    {
        putchar(num);
    }
    putchar('\n');
 
    printf("[putchar 'A'-'z'] : ");
    for (char c = '0'; c <= 'z'++c)
    {
        putchar(c);
    }
    putchar('\n');
 
    //putchar3. int, char ---------------
    printf("[putchar 'P', 80] : ");
    putchar('P');
    putchar('\t');
    putchar(80);
    putchar('\n');
 
    putchar('\n');
    system("pause");
    return 0;
}
cs


▲ getchar, putchar 예제 결과

[input] : getchar() 함수를 이용해서 입력된 문자들을 배열에 하나씩 차곡차곡 넣습니다.

[output1] : printf("%c", arr[i]) 를 이용해서 배열의 원소 하나하나 출력하는 모습입니다.

[output2] : putchar(arr[i]) 를 이용해서 배열의 원소 하나하나 출력하는 모습입니다.

[putchar 48-122] : purchar(n) 함수의 매개변수에 int 타입의 숫자를 집어넣어서, 바로 표준출력에 출력하는 모습입니다.

[putchar '0'-'z'] : putchar(c) 함수의 매개변수에 char 타입의 문자를 집어넣어서, 바로 표준출력에 출력하는 모습입니다.

[putchar 'P', 80] : 둘다 같은 P를 출력하는걸 보여드리고 싶었습니다.


반응형