파일 입출력
입력과 출력의 대상이 파일인 경우
입출력 대상
텍스트 파일, 이진 파일
입출력 과정
* 스트림을 생성함으로 파일 구조체에 대한 접근이 가능해짐.
파일 열기
- 파일 입출력을 수행하려면 먼저 fopen 함수를 이용하여 파일을 열어야 함
- fopen 함수의 원형: FILE* fopen(const char* filename, const char* mode);
- filename : 파일 이름
- mode : 파일 열기 모드
- 리턴 값 : 생성된 파일 스트림의 파일 포인터를 리턴 / 파일을 열 수 없으면 Null 포인터를 리턴
- Default mode는 Text file.
입출력 함수
예제_1
#include <stdio.h>
int main(void)
{
FILE* fp;
char ch;
if (fp = fopen("./main.c", "r")) // 리드모드로 파일 스트림 오픈
{
while(EOF != (ch - fgetc(fp))) // 파일의 끝(End Of File)인지로 루프
putchar(ch);
fclose(fp);
}
return 0;
}
예제_2
#include <stdio.h>
int main(void)
{
FILE* pFile;
int c;
int n = 0;
pFile = fopen("myfile.txt", "r");
if (pFile == NULL) printf("Error opening file"); // 파일 오픈 확인
else
{
do
{
c = fgetc(pFile);
if (c == '$') n++;
} while (c != EOF);
fclose(pFile);
printf("The file contains %d dollar sign characters ($).\n", n);
}
return 0;
}
기타 함수
1. ferror 함수
- 파일 입출력 시 발생하는 에어를 확인
- int ferror(FILE* stream);
- 리턴 값 : 스트림에 에러가 발생했으면 0이 아닌 값을 리턴 / 에러가 발생하지 않으면 0을 리턴
2. feof 함수
- 파일의 끝인지를 검사
- int feof(FILE* stream);
- 리턴 값 : 읽는 위치가 파일의 끝이면 0이 아닌 값을 리턴 / 파일 끝이 아니면 0을 리턴
'프로그래밍 언어 공부 > C' 카테고리의 다른 글
시간 관련 라이브러리 (0) | 2022.01.20 |
---|---|
텍스트 파일 입출력(응용) (0) | 2022.01.18 |
도서관리 시스템 고도화(동적메모리) (0) | 2022.01.17 |
함수 포인터(Function Pointer) (0) | 2022.01.15 |
동적 메모리 (0) | 2022.01.15 |