bmp 파일에서 특정 정보를 읽으려고합니다. 기본적으로 파일 유형, 즉 BMP 파일에 B M이 있습니다. 먼저 파일을 여는 것으로 시작합니다. 어떤 일이 올바르게 일어나고 있는지. 그러나 첫번째 fread는 실패하고 있습니다. 왜 이런 일이 일어나는 걸까요?bmp 파일을 올바르게 읽을 수 없습니다.
#include<stdio.h>
#include<string.h>
#define SIZE 1
int main(void)
{
FILE* fd = NULL;
char buff[2];
unsigned int i=0,size=0,offset=0;
memset(buff,0,sizeof(buff));
fd = fopen("RIT.bmp","r+");
if(NULL == fd)
{
printf("\n fopen() Error!!!\n");
return 1;
}
printf("\n File opened successfully\n");
if(SIZE*2 != fread(buff,SIZE,2,fd))//to read the file type.(i. e. B M)
{
printf("\n first fread() failed\n");
return 1;
}
return 0;
}
출력
File opened successfully
first fread() failed
Press any key to continue . . .
업데이트
예 파일이 때문에 일부 이전 오류로 비어 있습니다. 그래서이 오류가오고 있습니다.
아직도 이진 파일로 열어보고 싶지 않습니까? – 0xC0000022L
읽은 바이트 수는 얼마입니까? 얼마나 많은 파일에 있습니까? (당신이 eof를 치면 당신이 요구하는 것보다 덜 얻을 수 있습니다) 이것은 C++보다 더 C입니다. 파일을 닫는 것을 잊지 마십시오. errno 또는 ferror를 검사 해 보셨습니까? http://en.cppreference.com/w/c/io/ferror – doctorlove
fread의 실제 결과를 인쇄하는 것이 도움이 될 수 있습니다. – stefaanv