Notice
Recent Posts
Recent Comments
Link
It won't hurt to try
[C++/윈도우프로그래밍응용]21. 파일 입출력 본문
스트림(Stream)
입력과 출력을 바이트(byte)의 흐름으로 생각하는 것
출력 스트림
- : 프로그램에서 외부로 흘러나가는 연속된 바이트
- 예) 모니터, 프린터 등으로의 출력
입력 스트림
- : 외부에서 프로그램으로 플러들어오는 연속된 바이트
- 예) 키보드, 마우스 등으로부터의 입력
스트림의 장점
스트림의 최대 장점은 장치 독립성
- 입출력 장치에 상관없이 프로그램 작성 가능
클래스를 통한 추상적 구현 가능
- 구체적인 장치의 주소나 형태를 지정할 필요 없이
스트림 클래스를 통하여 추상적인 구현이 가능
입출력 관련 클래스
클래스 | 설명 |
ofstream | 출력 파일 스트림 클래스 |
ifstream | 입력 파일 스트림 클래스 |
fstream | 일반적인 파일 스트림을 나타내는 클래스 |
파일 쓰기
ofstream os("numbers.txt")
if(!os) {
cerr << "파일 오픈 실패" << endl;
exit(1);
}
for(int i=1; i<=10; i++)
os << i << " ";
파일 읽기
ifstream is("numbers.txt")
if(!is) {
cerr << "파일 오픈 실패" << endl;
exit(1);
}
int number;
// is읽기에서 실패한 경우 false
while (is >> number) {
cout << number << " ";
}
파일 모드
파일 모드를 이용한 다양한 파일 읽기/쓰기 지정
// 읽기전용 모드
ifstream is("numbers.txt", ios::in);
// 출력 모드, 이진 모드로 출력
ofstream os("data.bin", ios::out | ios::binary)
ifstream의 파일 모드
파일 모드 | 설명 |
ios::in | 입력을 위한 파일 열기 모드 |
ios::out | 출력을 위한 파일 열기 모드 |
ios::binary | 이진 파일 입출력을 위한 파일 열기 모드 |
ios::ate | 파일의 끝을 초기 위치로 지정(at end) |
ios::append | 파일의 끝에 추가(append) |
ios::trunc | 새로운 내용으로 교체(truncate) |
ios::app | 파일에 누적해서 내용을 추가할 때 사용함 |
파일 닫기
is.close();
remove() 함수
C언어에서 제공하는 remove() 함수로 파일 삭제 가능
#include <cstdio>
const string filename = "numbers.txt";
remove(filename.c_str());
300x250
300x250
'C++ > 윈도우프로그래밍응용' 카테고리의 다른 글
[C++/윈도우프로그래밍응용]23. 템플릿 (0) | 2021.10.30 |
---|---|
[C++/윈도우프로그래밍응용]22. 예외 처리 (0) | 2021.10.30 |
[C++/윈도우프로그래밍응용]20. 멤버 함수 재정의와 다중 상속 (0) | 2021.10.24 |
[C++/윈도우프로그래밍응용]19. 상속과 접근지정자 (0) | 2021.10.24 |
[C++/윈도우프로그래밍응용]18. 상속 (0) | 2021.10.24 |
Comments