티스토리 뷰

Storage

[C/C++] 파일 입출력 방법과 예제코드: ifstream, ofstream, fin, fout

rhys
반응형

# 파일 입력


1. ifstream class로 객체를 선언한다.


                            ifstream fin;


2. open() method를 사용하여 입력하길 원하는 파일을 지정한다.

    ifstream은 입력 전용이므로, 읽기 전용인지 쓰기 전용인지를 명시하지 않아도 됨.


                            fin.open("c://info.txt");


3. stream 객체를 사용, 입력.


                           fin>>str


4. 오픈한 파일을 닫는다        


                           fin.close();



ex) 화면에서 입력받은 정보로 "info.txt" 파일을 생성하는 코드


#include <fstream.h> // 파일 입출력 제공 클래스
#include <iomanip.h>

void main() {
 char name[20];
 int age;
 char address[20];

 int i;

 ofstream fout;
 fout.open("c://info.txt");

 cout<<"\n================파일 출력하기=============\n";
 for(i=0; i<3; i++) {
  cout<<i+1<<"번째 사람의 이름을 입력하세요=>";
  cin>>name;
  cout<<"나이를 입력하세요=>";
  cin>>age;
  cout<<"주소를 입력하세요=>";
  cin>>address;

  fout<<name<<setw(10)<<age<<setw(22)<<address<<endl;
  cout<<name<<setw(10)<<age<<setw(22)<<address<<endl;
 }
}


ex) "info.txt" 파일을 입력받아 화면으로 출력하는 코드


// A Simple Example of File Input #include <fstream.h> // C++ 파일 입출력 제공 클래스 #include <iomanip.h> void main() { char name[20]; int age; char address[20]; ifstream fin; // 입력 클래스 fin.open("c://info.txt"); cout<<"\n================파일에서 입력받기=============\n"; cout<<"\n이 름 나 이 주소\n"; cout<<"\n==============================================\n"; while(fin>>name>>age>>address) { cout<<name<<setw(10)<<age<<setw(22)<<address<<endl; } }



+ while(fin>>name>>age>>address)


입력 객체 fin은 성공적으로 입력을 하였으면 ifstream &을 리턴하지만, 파일의 끝(EOF)을 만나면 0을 리턴한다.

즉, 파일의 끝을 만나 더 이상 입력받을 데이터가 없으면 while 밖으로 벗어난다.



# 파일 출력


1. ofstream 클래스로 객체를 선언한다. 

   새로 생성될 객체(여기선 fout) 의 이름은 지정어를 제외하고 어떠한 이름이 와도 상관없다.


                          ofstream fout;


2. open() 메소드를 사용하여 출력하길 원하는 파일명을 지정한다.


                         fout.open("test.txt");


3. 스트림 객체를 사용, 출력.


                         fout<<" FILE OUTPUT. " <<endl;


4. 오픈한 파일을 닫는다.


                         fout.close();



ex) 파일출력의 간단한 예시코드


1
2
3
4
5
6
7
8
9
#include <fstream.h> //파일 입출력 제공 클래스 

void main() {
 ofstream fout; // 클래스 객체
 fout.open("C://test.txt");

 fout<<" FILE OUTPUT. " <<endl;
 fout.close();
}



ex) 문자 한 개를 get() 함수로 입력받아 "test2.txt" 파일에 출력하는 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// A Simple Example of File Input

#include <fstream.h> // C++ 파일 입출력 제공 클래스
#include <iomanip.h>

void main() {
 char ch;

 ofstream fout;
 fout.open("c://test2.txt");

 //^Z가 눌리기까지 문자를 한개씩 계속 입력받음
 while(cin.get(ch)) {
  fout<<ch;
 }
 fout.close();
}


@cmd:

TEST

^Z


@test2.txt:

TEST



ex) "test2.txt" 파일을 화면 출력하는 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
// A Simple Example of File Input

#include <fstream.h> // C++ 파일 입출력 제공 클래스
#include <iomanip.h>
void main() {
 char ch;
 ifstream fin;

 fin.open("c://test2.txt");
 while(fin.get(ch))  {
  cout<<ch;
 }
 fin.close();
}


http://codepad.org/



반응형

댓글