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를 읽을때는 저장할 변수의 자료형이
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700562 | 함수포인터에서요 (7) | 소심한여자 | 2025-07-06 |
2700530 | 전처리문 질문입니다. (1) | 아놀드 | 2025-07-05 |
2700510 | c언어를 어케하면 잘할수 있을까요.. | 연연두 | 2025-07-05 |
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
2700287 | 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) | 아련나래 | 2025-07-03 |
2700264 | 문자와 숫자 동시에 입력??? | 글고운 | 2025-07-03 |
2700236 | txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) | 미국녀 | 2025-07-03 |
2700211 | 전위 연산자 (2) | 어른처럼 | 2025-07-02 |
2700183 | C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; | 피스케스 | 2025-07-02 |
2700150 | 꼭좀 도와주세요ㅠㅠㅠ | 호습다 | 2025-07-02 |
2700095 | 연산문제...질문... | 오빤테앵겨 | 2025-07-01 |
2700070 | while문 , 3의배수 출력하는 프로그램좀 짜주세욤. | 횃불 | 2025-07-01 |
2700041 | 초보인데요 ㅎ 배열안에 배열을 집어넣을수 있나요?? | 헛장사 | 2025-07-01 |
2700012 | 배열// (1) | 전갈자리 | 2025-07-01 |
2699895 | 무한루프에 빠집니다.!! 해결좀부탁드려요 (10) | 선아 | 2025-06-30 |