개념 - 파일입출력 (1)
파일 입출력 함수의 도우미 : FILE구조체
- 사용하려는 디스크상의 파일이 어떤 상태로 사용중인지에 대한 정보 담음
- 파일 좀 더 편하게 사용하도록 도움
- 표준 입출력 라이브러리에서 파일 입출력 함수를 호ㅗ출할 때마다 FILE구조체의 포인터 변수를 넘겨주도록 구성
FILE *변수 이름
- 파일 구조체로 선언한 포인터 변수 => 파일 포인터
- 프로그래머가 파일 처리에 관한 내부정보를 알지 못해도 파일 포인터만 넘겨주면 파일 입출력 함수가 알아서 하게 해줌
파일 열기 함수 : fopen
함수 원형 : FILE *fopen(const char *filename, const char *mode)
함수 사용 형식 : fopen(사용할 파일 이름, 파일 사용 형식);
- 읽기,쓰기 등 어떤 목적으로 사용할 것인지에 따라서 달라진다
FILE* p_file = fopen("tipsoft.dat", "r");
if (NULL != p_file) {
//파일 열기에 성공한 경우
}
else {
//파일 열기에 실패한 경우
}
파일 사용 형식
파일이 다루는 속성에 따라 (t/b)
- t: 텍스트 속성으로 파일 사용
- b: 바이너리 속성으로 파일 사용
파일 내용 읽기 모드 "r"
- r: 읽기 목적으로 파일을 연다
=> 파일이 없으면 실패한다
FILE *p_file("tips.dat","rb"); FILE *p_file("tips.txt","rt");
파일 내용 쓰기 모드 "w" 덮어쓰기 모드
- r: 읽기 목적으로 파일을 연다
- 파일이 없으면 파일을 새로 하나 만든다
- 같은 이름의 파일이 이미 있는 경우 파일을 열면서 파일 내용을 삭제
- 디스크에 용량 부족하거나 읽기 전용모드에 쓰기 모드 사용하면 파일 열기에 실패
FILE *p_file("tips.dat","wb"); FILE *p_file("tips.txt","wt");
파일에 데이터 이어쓰기 모드 "a"
- a: 읽기 목적으로 파일을 연다
- 동일 파일에 쓰기 모드로 쓰되, 이어서 쓰고 싶다
FILE *p_file("tips.dat","ab"); FILE *p_file("tips.txt","at");
읽기와 쓰기 같이 사용
읽기 강조 "r+"
- 읽기 모드로 열되, 쓰기도 가능
- 기존 파일이 있으면 해당 파일의 내용을 지우지는 않지만 기존 데이터의 위치로 이동해서 해당 위치의 내용을 덮어쓸 수 있다
=> 유일하게 내다 원하는 위치로 가서 해당 데이터 변경할 수 있는 아이
쓰기 강조 "w+"
- 기존 파일 없으면 새로 생성가능
- 기존 파일 있으면 기존 파일 내용을 모두 지우고 시작
읽기와 이어쓰기 같이 사용 "a+"
- 파일 내용 지우지 않고 이어쓴다
- 파일의 끝에 내용이 추가, 헤딩 위치로는 못 가고 끝 위치에서 가능
파일 닫기 : fclose
int fclose(FILE *stream) fclose(파일 포인터)
- fopen함수 사용해 파일을 사용하다 사용이 끝나면 fclose함수를 사용해 파일을 닫는다
- 파일 열어놓고 파일 닫지 않으면 파일 내용이 지워지거나 파일을 사용할 수 없는 상태
FILE* p_file = fopen("tipsoft.dat", "r");
if (NULL != p_file) {
//파일 열기에 성공한 경우
fclose(p_file);//파일을 닫음
}
else {
//파일 열기에 실패한 경우
}
Author And Source
이 문제에 관하여(개념 - 파일입출력 (1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@myway00/C-개념-파일입출력저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)