#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."라는 에러 메시지를 출력하고 프로그램이 종료됩니다.
### 주의사항
파일을 다룰 때는 파일이 성공적으로 열렸는지 항상 확인해야 하며, 사용이 끝난 후에는 파일을 닫아야 합니다. 이는 시스템 자원을 효율적으로 관리하고, 데이터 손실을 방지하기 위함입니다.
'개념 > 혼자 공부하는 C언어' 카테고리의 다른 글
chapter 18) 표준 입출력 스트림을 사용한 문자열 입력 (1) | 2024.10.16 |
---|---|
chapter 18) 파일의 형태와 개방 모드가 다른 경우 (0) | 2024.10.15 |
chapter 18) 파일을 열고 닫는 프로그램 (1) | 2024.10.13 |
chapter 18) 여러 줄의 문장을 입력하여 한 줄로 출력 (1) | 2024.10.12 |
chapter 18) 버퍼를 공유함으로 인해 발생하는 문제 (1) | 2024.10.11 |