C++ 파일 입출력

프로그래밍/C/C++ 2014. 2. 24. 05:22

파일 클래스는  ifstream, ofstream, fstream으로 지정할수 있고, 개방 모드로는 입출력 동작 모드를

지정하는 ios::in, ios::out등을 사용한다.



의 미 

 in

파일 입력(파일 읽기) 

 out

 파일 출력(파일 쓰기)

 ate

 파일 개방 후, 파일 끝으로 이동

 app

 파일 추가(append)

 trunc

 존재하는 파일 제거(truncate)하고 새로운 파일로 연다

 binary

 텍스트(text)가 아닌 바이너리(binary)로 출력


  

☞ 파일 입출력 간단히 소개

//"data.in" 파일을 입력 파일로 개방

ifstream infile("data.in", ios::in);

 

//"data.out" 파일을 출력 파일로 개방

ofstream outfile("data.out", ios::out);

 

//"myfile.dat" 파일을 입출력 상태로 개방

fstream myfile("myfile.dat", ios::in | ios::out);

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
   ofstream fo("test.dat");
   
   if(!fo) {
      cout << "파일 열기 실패!\n"
      exit(1);
   }
   
   fo << "Hello!\n";
   fo << 123 << " " << hex << 123 << endl;
   fo.close();
 
   ifstream fi("test.dat");
 
   if(!fi) {
      cout << "파일 열기 실패!\n";
      exit(1);
   }
 
   char s[81];
   int n;
   fi >> s >> n;
   cout << s << " : " << n << endl;
   fi.close();
 
   return 0;
}

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
    char ch;
    ifstream fin;
    
    fin.open("test.dat");
    if(!fin) {
       cout << "파일 열기 실패\n";
       exit(1);
    }   
    
    fin.unsetf(ios::skipws); // skipws 형식 플래그 클리어, 공백 문자도 입력
    while(!fin.eof()) { // 파일 끝이 아니면
        fin >> ch;
        if(ch == ' ')
          ch = '%';
        cout << ch;
    }
 
    return 0;
}

 

※결과

파일에 test.dat에 다음과 같은 내용이 저장되었을때

Hello, everybody  !

This is a test file test.dat

 

공백마다 %가 출력됨

Hello%everybody%% !

This%is%a%test%file%test.dat

 

'프로그래밍 > C/C++' 카테고리의 다른 글

스마트 포인터  (0) 2014.11.28
메모리 관리 함수(memset, memcpy, memmove)  (0) 2014.10.24
함수 주요 형태(_stdcall, _cdecl, _fastcall)  (0) 2014.02.24
비트 연산자  (0) 2014.02.12
함수 포인터  (0) 2014.02.12