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를 읽을때는 저장할 변수의 자료형이
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |
2675356 | 2진수를 10진수로 바꾸려고 하는데 막히네요.. | 풀잎 | 2024-11-17 |
2675297 | Prity 비트 발생기 | 한란 | 2024-11-16 |