2013-04-02 2 views
2

이 코드를 사용하면 도움이 될 수 있습니까? 내 문제는 내가 바이너리 파일의 전체 구조를 읽을 수 있다는 것입니다. (내가 BTW 쓰기 파트로 완료하고) 내가 그것을 읽고 보낼 무엇 내가하고 싶은 바이너리 파일에서 전체 구조 배열을 읽는 방법

struct inventory 
{ 
    char c_name[30]; 
    char model[30]; 
    char color[30]; 
    float p_price; 
    float s_price; 
    float profit; 
}c_inven[100]; 

C

구조를 생성 그것을 다른 구조에 저장하는 다른 함수에 전달합니다. 여기에 내가
fread(&c_inven,sizeof(inventory),1,cars); 

를 읽는 데 사용 내 코드이고 나는 그것을 무효 종류를 수신하기 위해이 함수를 호출

sort(c_inven); 
*printing[1]* 

이 기능 헤더를 사용하여 전송하고 (구조체 재고 sort_inven [100]) 하지만 for 루프를 사용하여 값을 출력 할 때 c_inven [0] .xxxxxx의 값을 출력하고 c_inven. [1]로 이동할 때 공백으로 반환합니다.

도와주세요.

답변

0

귀하의 fread 통화는 하나의 항목 만 읽습니다. 당신은 당신이 어디에 c_inven 점에 충분한 메모리를 malloc으로 할당한다고 가정

fread(&c_inven,sizeof(struct inventory),100,cars); 

를 호출해야합니다.

또한 fread의 반환 값을 확인하면 읽은 항목의 수를 알려줍니다.

인쇄 c_inven[1]은 메모리에 다음 변수가있을 수 있습니다.

관련 문제