본문 바로가기
개념/혼자 공부하는 C언어

chapter 18) stdin과 stdout을 사용한 문자 입출력

by kiseno 2024. 10. 8.
728x90
반응형
SMALL
#include <stdio.h>

int main(void){
    int ch;

    while(1){
        ch = fgetc(stdin);
        if (ch == EOF){
            break;
        }fputc(ch, stdout);
    }
    return 0;
}

### 코드 설명

- `int ch;`: 입력받은 문자를 저장하기 위한 정수형 변수 `ch`를 선언합니다. 여기서 `int` 타입을 사용하는 이유는 `EOF`를 처리하기 위함입니다. `EOF`는 일반적으로 `-1`로 정의되며, `char` 타입으로는 이 값을 표현할 수 없습니다.
- `while(1) { ... }`: 무한 루프를 생성합니다. 이 루프는 `EOF`가 입력될 때까지 계속 실행됩니다.
- `ch = fgetc(stdin);`: `fgetc` 함수를 사용하여 표준 입력으로부터 한 문자를 읽고, 그 값을 `ch`에 저장합니다. `stdin`은 표준 입력 스트림을 나타냅니다.
- `if (ch == EOF) { break; }`: 만약 읽은 문자가 `EOF`라면, 루프를 종료합니다.
- `fputc(ch, stdout);`: `fputc` 함수를 사용하여 읽은 문자를 표준 출력에 출력합니다. `stdout`은 표준 출력 스트림을 나타냅니다.

### 주의사항

- 프로그램은 사용자가 `EOF`를 입력할 때까지 계속 실행됩니다. 대부분의 시스템에서 터미널에서 `EOF`를 생성하는 방법은 `Ctrl + D` (Unix/Linux) 또는 `Ctrl + Z` (Windows)를 입력하는 것입니다.
- 이 프로그램은 입력된 모든 것을 즉시 출력합니다. 따라서 사용자가 입력한 내용을 그대로 볼 수 있습니다.

이 프로그램은 C 언어에서 표준 입력과 출력을 다루는 기본적인 예제를 보여줍니다. 이러한 유형의 프로그램은 입력 데이터를 처리하거나 테스트 목적으로 유용할 수 있습니다.

728x90
반응형
LIST