Game !

fin 은 자동 개행을 한다

read / wirte 는 개행을 하지 않는다

 

C++ 스타일 파일 입출력을 사용하려면 아래 헤더파일을 추가해야한다

<fstream>

 

 

1. 파일에 쓰기

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
#include <fstream>
using namespace std;
 
class CPlayer
{
public:
    void    
private:
    char*     m_pName;
    int     m_iHp;
}
 
void SaveData()
{
    ofstream fout;
 
    // 파일 열기
    // std::ios_base::binary : 바이너리 모드
    fout.open("PlayerData.txt"std::ios_base::binary);
 
    // 1. char 배열 저장 
    // 파일에 쓰기
    int _arrLen = strlen(m_pName);
    fout.write(m_pName, sizeof(char* _arrLen);
    
    // 2. 정수 저장 : 일반 원시 변수
    // 파일에 쓰기
    fout.write((char*)&m_iHp, sizeof(int));
 
    // 파일 닫기
    fout.close();
}
cs

 

 

 

 

 

2. 파일 읽기

 

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
34
35
36
37
38
39
40
41
#include <fstream>
using namespace std;
 
class CPlayer
{
public:
    void    Set_Info(/*매개변수들*/);
private:
    char*     m_pName;
    int     m_iHp;
}
 
void LoadData()
{
    ifstream fin;
 
    // 파일 열기
    // std::ios_base::binary : 바이너리 모드
    fin.open("PlayerData.txt",std::ios_base::binary);
    
    // 파일이 정상적으로 열렸는가
    if (fin.is_open() == true)
    {
        char _arr[30= "";
        int _hp = 0;
 
        // 파일 읽기 : 1. char 배열
        fin.read(_arr, sizeof(_arr));
        
        // 파일 읽기 : 2. 일반 원시 변수
        fin.read((char*)&m_iHp, sizeof(int));
 
        // 데이터 셋팅
        Set_Info(_arr, _hp);
 
 
        // 파일 닫기    
        fin.close();    
    }
}
 
cs

 

 

출처 :

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kks227&logNo=220227175866

 

'C++' 카테고리의 다른 글

[펌] 생성자 소멸자 관련  (0) 2023.08.19
[BT] 요약  (0) 2023.08.18
[C++] 코드 위치나 정보를 받아오는 매크로 들  (0) 2022.05.08
[C++] interface  (0) 2022.05.06
[C++] 함수 포인터  (0) 2022.05.06