C언어에서 binary 파일에 있는 값을 가져오는 코드에 대해 조언좀 해주실수있을까요?

조회수 407회
#include <stdio.h>

typedef struct {
    int aa //ID
    int bb //시작시간
    int cc //크기
}process;

int main() {
    process buffer;
    FILE* fp;
    fp = fopen("test.bin", "rb");
    if (fp == NULL) {
        fprintf(stderr, "파일열기 실패");
        return 1;
    }
    else {
        while (fread(&buffer, sizeof(process), 1, stdin) == 1) {
            /* 여기부터 어떤식으로 써야할지 감이 안잡힙니다 .. */
            fprintf(stdout,"%d %d\n", buffer.arrival_time, buffer.code_byte);
        }
    }
    fclose(fp);
    return 0;
}

키보드 입력한것을 buffer에 저장하고 저장된 값에 의해 test.bin 에 있는 내용이 출력이 되는 코드를 작성하려고 합니다. 위에 주석으로 달아놓은부분부터 어떤 문법을 사용해야하는지 도저히 감이 안잡힙니다. 혹시 알수있을까요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    구조체에 정수값을 저장하고 싶은 거라면 적절한 길이의 char 배열을 선언해 buffer 대신 문자열을 읽어오고 int로 변환해 멤버변수에 대입해야 합니다.

    값 순서가 고정되있다는 가정 하에 말하겠습니다. bin에 값들이 토큰으로 들어가있다면 strtok()로 문자열 분리하고 atoi() 호출해 int로 변환해 process의 멤버변수에 대입, 출력. 값들이 빈틈없이 sizeof(int)만큼 차지한다면 파일에서 2바이트씩 읽어서 atoi() 호출해 process에 대입, 출력. 특별한 조건이 있다면 추가로 작성해주세요

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)