파일의 끝을 확인해주는 feof함수의 활용법
Programming/C 2013. 2. 15. 01:31 |#include<stdio.h>
main()
{
int state;
char ch;
/* 파일의 개방 */
FILE * file = fopen("c:\\test.txt", "wb");
if(file == NULL){
printf("file open error!\n");
return 1;
}
fputc('1', file);
fputc((char)255, file); //(char)255로 파일에 쓰면 -1이 들어간다. char 255는 11111111이므로
fputc('2', file);
/* 파일의 종결 */
state = fclose(file);
if(state != 0){
printf("file close error!\n");
return 1;
}
/* 파일의 개방 */
file = fopen("c:\\test.txt", "rb");
if(file == NULL){
printf("file open error!\n");
return 1;
}
while(1)
{
ch=fgetc(file);
if(feof(file) != 0) //file을 이용하여 FILE의 구조체 변수를 참조한다. 그래서 파일의 끝이 아니면
break; //0을 리턴해주고 파일의 끝을 만나면 0이 아닌 값을 리턴한다.
fputc(ch, stdout);
putchar('\n');
}
/* 파일의 종결 */
state = fclose(file);
if(state != 0){
printf("file close error!\n");
return 1;
}
return 0;
}
feof 함수는 전달되는 파일 포인터가 가리키는 FILE 구조체 변수를 참조한다.
왜냐하면 그곳에는 파일의 끝에 도달했는지에 대한 정보가 존재하기 때문이다.
int feof(FILE * stream)
feof 함수는 호출 시 전달되는 파일 포인터가 가리키는 파일이 끝에 도달한 경우 0이 아닌 값을 리턴한다.
'Programming > C' 카테고리의 다른 글
파일 복사 프로그램 (0) | 2013.02.15 |
---|---|
Random Access 입력 및 출력: 파일 위치 지시자(File Position Indication) fseek함수 (0) | 2013.02.15 |
fprintf, fscanf함수를 이용한 구구단 프로그램 (0) | 2013.02.15 |
파일 입력, 출력 ( fopen, fclose ) (0) | 2013.02.15 |
사용자 자료형 enum (0) | 2013.02.15 |