[C언어] 바이너리 데이터 입출력 관련

2023. 4. 14. 11:10코딩테스트 Intro/C

728x90

[바이너리 데이터 입출력: fread]

#include <stdio.h>
size_t fread(void * buffer, size_t size, size_t count, FILE*stream);

-> 성공 시 전달인자 count, 실패 또는 파일의 끝 도달 시 count보다 작은 값 반환

 

int main(void)
{
	int buf[12];
    ...
    fread((void*)buf, sizeof(int), 12, fp);
    ...

sizeof(int) 크기의 데이터 12개를 fp로부터 읽어 들여서 배열 buf에 저장하라!

 

[바이너리 데이터의 입출력] fwrite

#include <stdio.h>
size_t fwrite(const void*buffer, size_t size, size_t count, FILE*stream);
-> 성공 시 전달인자 count, 실패 또는 파일의 끝 도달 시 count보다 작은 값 반환
int main(void){
	int buf[12];
    ...
    fread((void*)buf, sizeof(int), 12, fp);

sizeof(int) 크기의 데이터 12개를 fp로부터 읽어 들여서 배열 buf에 저장하라!

 

[바이너리 파일 복사 프로그램]

int main(void)
{
	FILE*src=fopen("src.bin", "rb");
    FILE*des=fopen("dst.bin", "wb"):
    char buf[20];
    int readCnt;
    if(src==NULL || des==NULL) {
    	puts("파일오픈 실패!");
        return -1;
    }
    while(1)
    {
    	readCnt=fread((void*)buf, ... 중략
728x90