간단히 파일을 읽고 쓰려면
<<
,>>
연산자가 편리
<<
,>>
연산자는 오직 텍스트 파일에 대해서만 작동한다.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const string FileName = ".\\hello.txt";
/*
* 파일 쓰기
*/
void WriteToFile(){
ofstream fout;
fout.open(FileName);
if(!fout){
// .. 에러처리
}
int age = 28;
string name = "HurJin";
char song[] = "Yesterday";
fout << age << endl;
fout << name << endl';
fout << song << endl;
fout.close();
}
/*
* 파일 읽기
*/
void ReadFromFile() {
ifstream fin;
fin.open(FileName);
if(!fin) {
// .. 에러처리
}
string age;
string name;
string song;
fin >> age;
fin >> name;
fine >> song;
cout << age << endl;
cout << name << endl;
cout << song << endl;
}
/*
* 파일 쓰기 with 파일 모드(append)
*/
void WriteToFileWithAppendMode(){
ofstream fout;
fout.open(FileName, ios::app);
if(!fout){
// .. 에러처리
}
string major = "Computer Science";
char hobby[] = "Pingpong";
fout << major << endl;
fout << hobby << endl';
fout << endl << endl;
fout << "Bye~!" << endl;
fout.close();
}
/*
* 파일 읽기 with get / getline
*/
void ReadFromFileWithGet() {
ifstream fin;
fin.open(FileName);
if(!fin) {
cerr << "ERR: 파일 열기 실패" << endl;
return;
}
// 한줄씩 읽기
while(true) {
string s = "";
// 한 글자씩 읽기
while(true) {
char c;
c = fin.get();
if(c == EOF)
return;
if(c == '\n')
break;
s += c;
}
cout << s << endl;
}
}
void ReadFromFileWithGetline() {
ifstream fin;
fin.open(FileName);
if(!fin) {
cerr << "ERR: 파일 열기 실패" << endl;
return;
}
while(getline(fin, s)) {
cout << s << endl;
}
}