Language/C++
[C] C 스타일 파일입출력
AK-KO
2022. 11. 12. 20:04
C 스타일 :
자료형 하나씩 저정해도 되지만 보통 구조체로 저장한다.
> 한 번에 데이터를 모아서 저장할 수 있어서
C 스타일 파일 입출력을 사용하려면 아래 헤더파일을 추가해야한다
<iostream>
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
33
34
35
|
#include <iostream>
using namespace std;
#define MAX_NAME_LENGTH = 32;
struct SAVE_DATA
{
char arr[MAX_NAME_LENGTH];
int iHp;
}
void SaveData()
{
FILE* pWriteFile = nullptr;
// 파일 열기
// b : 바이너리
fopen_s(&pWriteFile, "PlayerData.txt", "wb");
SAVE_DATA _save;
// 1. char 배열 저장
strcpy_s(_save.arr, sizeof(_save.arr), "불멸의영웅탈론");
// 2. 정수 저장 : 일반 원시 변수
_save.iHp = 200;
// 파일에 쓰기
fwrite(&_save, sizeof(SAVE_DATA), 1, pWriteFile);
// 파일 닫기
fclose(pWriteFile);
pWriteFile = nullptr;
}
|
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
|
#include <iostream>
using namespace std;
#define MAX_NAME_LENGTH = 32;
struct SAVE_DATA
{
char arr[MAX_NAME_LENGTH];
int iHp;
}
void LoadData()
{
FILE* pReadFile = nullptr;
// 파일 열기
// b : 바이너리
fopen_s(&pReadFile, "../Data/PlayerData.txt", "rb");
if (pReadFile != nullptr)
{
SAVE_DATA _save;
// 파일 읽기 : 저장한 구조체와 동일한 자료형 사용해야함
fread(&_save, sizeof(SAVE_DATA), 1, pReadFile);
// 파일 닫기
fclose(pReadFile);
pReadFile = nullptr;
}
}
|
cs |