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

chapter 18) 파일의 내용을 화면에 출력하기

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

int main(void){
    FILE *fp;
    int ch;

    fp = fopen("a.txt","r");
    if (fp == NULL){
        printf("do not open the file.\n");
        return 1;
    }
    while(1){
        ch = fgetc(fp);
        if (ch == EOF){
            break;
        }
        putchar(ch);
    }
    fclose(fp);

    return 0;
}

### 프로그램의 주요 부분

- `FILE *fp;`는 파일을 다루기 위한 파일 포인터 `fp`를 선언합니다.
- `fp = fopen("a.txt", "r");`를 통해 "a.txt" 파일을 읽기 모드(`"r"`)로 엽니다. 파일이 성공적으로 열리면, `fp`는 열린 파일을 가리키게 됩니다. 파일을 열 수 없으면, `fp`는 `NULL`을 반환합니다.
- `if (fp == NULL)`는 파일이 성공적으로 열렸는지 확인합니다. 파일을 열 수 없는 경우 "do not open the file."라는 메시지를 출력하고, `return 1;`을 통해 프로그램을 비정상적으로 종료합니다.
- `while(1)` 루프 안에서 `fgetc(fp)` 함수를 사용하여 파일로부터 한 문자(`ch`)씩 읽어들입니다. `fgetc` 함수는 파일의 끝에 도달하면 `EOF`를 반환합니다.
- `if (ch == EOF)` 조건문은 파일의 끝에 도달했는지 확인하고, 파일의 끝이면 `while` 루프를 빠져나옵니다.
- `putchar(ch);`는 읽어들인 문자를 표준 출력(보통 화면)에 출력합니다.
- `fclose(fp);`는 파일을 닫습니다. 파일을 열었다면 반드시 닫아야 합니다.

### 실행 결과

이 프로그램을 실행하면, "a.txt" 파일의 내용이 그대로 콘솔(화면)에 출력됩니다. 만약 "a.txt" 파일이 존재하지 않거나, 읽을 수 없는 경우 "do not open the file."라는 에러 메시지를 출력하고 프로그램이 종료됩니다.

### 주의사항

파일을 다룰 때는 파일이 성공적으로 열렸는지 항상 확인해야 하며, 사용이 끝난 후에는 파일을 닫아야 합니다. 이는 시스템 자원을 효율적으로 관리하고, 데이터 손실을 방지하기 위함입니다.

728x90
반응형
LIST