스트림

순서가 있는 데이터의 연속적인 흐름. 그렇기에 물의 흐름처럼 간주

■ 입력
ifstream is;
is.open("score.txt");       // 20100001 홍길동 100
int number;                 // 20100002 김유신 90
is >> number;               // 20100003 강감찬 80

■ 출력
ofstream os;
os.open("result.txt");
os << number;

<aside> ➡️ score.txt

2010001 홍길동 100 2010002 김유신 90 2010003 강감찬 80

result.txt 2010001 홍길동 100

</aside>

#include <iostream>
#include <fstream>
using namespace std;

int main() {
	ifstream is;
	is.open("score.txt");
	if(!is) {
		cerr << "파일 오픈에 실패하였습니다" << endl;
		exit(1);
	}

	int number;
	char name[30];
	int score;
	is >> number >> name >> score;

	ofstream os;
	os.open("result.txt");
	os << number << " " << name << " " << score << endl;

	is.close();
	os.close();
	return 0;
}

파일 쓰기

int main() {
	ofstream os { "numbers.txt" };
	if(!os) {
		cerr << "파일 오픈에 실패하였습니다." << endl;
		exit(1);
	}
	for(int i = 0; i < 100; i++)
		os << i << " ";
	return 0;
// 객체 os가 범위를 벗어나면 ofstream 소멸자가 파일을 닫는다.
}

파일 읽기

int main() {
	ifstream is { "numbers.txt" };
	if (!is) { 
		cerr << "파일 오픈에 실패하였습니다." << endl;
		exit(1);
	}
	int number;
	while (is) {
		is >> number;
		cout << number << " ";
	}
	cout << endl;
	return 0;
// 객체 is가 범위를 벗어나면 ifstream 소멸자가 파일을 닫는다.
}

파일 모드