binary data 읽는 것 질문이요 ㅠㅜ
뽀송뽀송
질문 제목 : xxxx.bin 파일을 읽어서 구조체와 공용체에 binary 파일 안에 담긴 내용을 저장하는 것 질문이요 !질문 내용 :
q1 : binary data를 읽는데 무조건 fread 함수를 사용해야 하나요?
q2 : binary data를 읽고 비교해야 하는데,
예를 들어, binary 데이터 첫줄에 사람의 수가 있다고 가정하면
file *fp = fopen(xxxx.binary, rb); // 파일포인터 선언
int *num_persons = malloc(sizeof(int)); // 포인터 선언하고 메모리 할당
int loop=0; // for문에 사용할 loop변수 선언,초기화
fread(num_persons, sizeof(int), 1, fp); // binary data 를 sizeof(int) x 1 만큼 읽음for(loop=0;loop*num_persons;loop++)
{
----조건문---
}이렇게 비교하는 건 유효한 건가요? (binary data와 loop를 비교하는게 유효한건가요?)
-
콩쑨
따라서 읽은것이 내가 저장한 값대로 읽어들였는지 부터 확인하셔야 합니다.
그 후 그것을 어떻게 출력할 것인지는 또 다른 문제이고요...
binary data를 다루려면 먼저 읽어들인 내용이 내가 의도한 것인지를 확인하는 작업이
선행 되어야 합니다.(이것은 제가 매번 다른 프로그램을 만들때마다 항상 선행하는 작업입니다) -
나빛
제가 이해하기 어렵게 설명드렸나보네요...
binary 파일을 읽는 것은 매우 고난이도 테크닉입니다.
일반 텍스트파일처럼 바로 읽기가 매우 어렵기 때문입니다.
그 이유는 그저 바이너리 데이터이기 때문입니다.
FFFFFFFF
라고 저장된 바이너리 파일에서 FFFF , FFFF로 나누어서 읽어야 하는게 정상인가요?
F를 8개 모두 다르게 읽는것이 정상인가요?
그것은 결국 저장한 사람의 룰이고, 그것을 읽는 사람은 저장한사람이 어떠한
룰에 입각하여 저장했는 -
로다
답변 감사드립니다 !!죄송한데 하나만 더 여쭤볼게요 .ㅜㅜ binary 형식인 사람수를 읽고 바로 화면에 출력하면
binary 형식으로 출력되는거 맞죠? 이 숫자를 알아볼 수 있게 변환하려면 어떻게 해야 하나요.??ㅜㅜ -
블레이
1) 상관없습니다. scanf를 써도 무방합니다.
2) 유효합니다.
그런데 중요한건 data가 binary 인지 아닌지는 for loop나 fread와는 별개의 문제라고 사료됩니다.
(유 경험자)
그 이유를 비교해보기 위해서는 파일을 읽을때
\r\ 일때와 \rb\일때를 비교해보시면 됩니다. 많은 사람들이 binary file을 \r\를 이용해 읽은 후
data에 문제가 있다고 하니까요.
또한 binary data를 읽을때는 저장할 변수의 자료형이
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2698967 | 파일삭제 윈도우 폴더까지 접근하게하는 함수가 뭔가요 (2) | 샤인 | 2025-06-21 |
2698938 | c언어 메모리질문 (3) | 나래 | 2025-06-21 |
2698909 | 서비스 요청 고객 관리 프로그램 짜는것좀 도와주세요ㅜㅜ (4) | 궁수자리 | 2025-06-21 |
2698882 | 프로그래밍좀 짜주세요 (3) | 황예 | 2025-06-21 |
2698855 | 카프-라빈 알고리즘 코딩 분석좀 도와주세요.. | 꽃봄 | 2025-06-20 |
2698829 | 학점계산기 (7) | MyWay | 2025-06-20 |
2698782 | 기초적인 함수 질문이요ㅠㅠㅠㅠ | 내담 | 2025-06-20 |
2698749 | 프로그램 짜던 도중 패닉입니다...ㅜ | 파랑 | 2025-06-19 |
2698719 | 조건부컴파일 질문입니다.~ (2) | 큐트 | 2025-06-19 |
2698693 | 재귀 함수 에러 | 바닐라 | 2025-06-19 |
2698673 | 고민이있는데 들어좀주세요!! (1) | 초코맛캔디 | 2025-06-19 |
2698644 | 1부터 n까지의 합을 구하는데 엄청긴숫자의 합을 구할때는 어떻게 해야하나요? (4) | 슬우 | 2025-06-18 |
2698616 | 다른 함수로 안넘어갑니다..;;; | 도1도캣 | 2025-06-18 |
2698587 | 배열하다 막혀서... (3) | WhiteCat | 2025-06-18 |
2698559 | 문자열을 비우는방법 (2) | 하늘 | 2025-06-18 |
2698528 | 착하고 친절한 선생씌구해염~ㅋㅋ (4) | 옆집언니야 | 2025-06-17 |
2698502 | 자료구조 큐 | 캔서 | 2025-06-17 |
2698477 | 실행화면 배경문의요 | 선아 | 2025-06-17 |
2698430 | 변수의 값이 저장이 않되네요;; (4) | 피네 | 2025-06-16 |
2698404 | C#을 배울려고 하는데 C나 C++을 알아야 하나요 ?? (1) | 신당 | 2025-06-16 |