파일 입출력은 C 언어 및 C++에서 제공하는 표준 라이브러리를 통해 쉽게 사용할 수 있습니다.
많이 사용되지는 않지만, 정확히 이해하고 필요한 상황에 적절히 사용할 줄 알아야 합니다.
fstream, C의 stdio.h 라이브러리를 사용.0x1A(EOF)로 처리.CR (0x0D) + LF (0x0A)LF (0x0A)만 사용.fopen 모드:"r": 읽기 전용."w": 쓰기 전용 (파일이 없으면 생성, 있으면 덮어씀)."a": 추가 쓰기 모드 (파일 끝에 이어 씀)."rb", "wb", "ab": 이진 모드.FILE *pFile = fopen("file.txt", "rb");
fseek(pFile, 0, SEEK_END); // 파일 끝으로 이동
long size = ftell(pFile); // 현재 위치(파일 크기) 반환
fseek(pFile, 0, SEEK_SET); // 파일 처음으로 이동
char *buffer = malloc(size); // 파일 크기만큼 메모리 할당
fread(buffer, 1, size, pFile); // 파일 데이터 읽기
fclose(pFile);
free(buffer); // 동적 메모리 해제
fwrite 함수:fflush(FILE *stream): 버퍼 데이터를 강제로 밀어냄.fclose(FILE *stream): 버퍼 비우기 및 파일 닫기.예제: 데이터 저장
FILE *pFile = fopen("file.txt", "wb");
fwrite(data, sizeof(data), 1, pFile);
fflush(pFile); // 데이터를 강제로 저장
fclose(pFile); // 파일 닫기 (버퍼 비우기)
fread 사용법:size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
count).size = 1, count = 1)로 읽더라도, 실제로는 버퍼에서 데이터를 반환.예제: 파일 읽기
FILE *pFile = fopen("file.txt", "rb");
char buffer[1024];
size_t bytesRead = fread(buffer, 1, sizeof(buffer), pFile);
fclose(pFile);
fseek(FILE *stream, long offset, int origin):origin:SEEK_SET: 파일의 시작 위치.SEEK_CUR: 현재 위치.SEEK_END: 파일 끝.ftell(FILE *stream):rewind(FILE *stream):fflush(FILE *stream):a)로 열어야 함.fflush()를 호출해도 OS의 캐시에 남아 있을 수 있음.