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를 읽을때는 저장할 변수의 자료형이
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2654574 | 소스 추가좀 부탁드립니다. (등수 출력) | 크리미걸 | 2024-05-12 |
2654550 | 피보나치수열. (3) | 중독적 | 2024-05-11 |
2654521 | c초보 빙고관련게임... | 달콤이 | 2024-05-11 |
2654491 | 10진수를 2진수로 바꾸는법 (8) | 아잉 | 2024-05-11 |
2654412 | 빅오를 구하고 싶어요~ | 애기 | 2024-05-10 |
2654381 | 혼자 연구하는 c/c++ 질문 | 아잉 | 2024-05-10 |
2654352 | 행렬크기를 scanf로 입력받을수도 있나요..? | VanilLa | 2024-05-10 |
2654293 | 첫시작값과 끝값의 사이에 존재하는 정수들의 합을 구하는 것 (5) | 해긴 | 2024-05-09 |
2654185 | 64bit 환경에서 자료형의 크기가 좀궁그해요(완료) 더궁금한게 생겻어요(추가) (2) | 빈길 | 2024-05-08 |
2654152 | 확장자 exe로 변경 (1) | 한 | 2024-05-08 |
2654128 | c언어 간단하게 자판기만들려는데 ㅜㅜ | 유1혹 | 2024-05-08 |
2654074 | 배열에 들어있는값을 포인터에 옮기고 싶어요.. | 소라 | 2024-05-07 |
2654043 | 이차원 배열에 있는 값들 더하기.. | 선아 | 2024-05-07 |
2654011 | c언어 대문자소문자, 소문자대문자 변형하기, | 샤르 | 2024-05-07 |
2653985 | 실수 자료형 표현범위있잖아요 (1) | 패틱 | 2024-05-06 |
2653957 | 뭐가틀린건가요?.. (2) | 볼1매그녀 | 2024-05-06 |
2653934 | malloc을 이용한 출력 (1) | 하예 | 2024-05-06 |
2653906 | 숫자 야구 게임인데요.. (2) | 상큼한캔디 | 2024-05-06 |
2653883 | 구조체 질문이요.. 연결리스트. (1) | 별 | 2024-05-05 |
2653802 | 배열에 저장된 데이터와 원하는 데이터비교하는것좀.. | 리카 | 2024-05-05 |