DOS의 DJGPP를 사용하여 이진 파일을 읽는 동안이 코드가 중지됩니다. 이것은 fread 호출이 이루어질 때 발생합니다. 호출이 제거되면 프로그램이 성공적으로 실행됩니다. 동일한 코드가 Visual C++ 2008을 통해 정상적으로 실행됩니다. djgpp에서 비슷한 문제가 발생한 사람이 있습니까? 나는 정말 간단한 것을 놓치고 있습니까?DJGPP의 fread 오류
char x;
string Filename = "my.bin" ;
fp = fopen(Filename.c_str(),"rb");
if (fp == NULL)
{
cout << "File not found" << endl ;
}
if (fseek (fp, 0, SEEK_END) != 0)
{
cout <<"End of File can't be seeked";
return -1;
}
if ((fileLength = ftell(fp)) == -1)
{
cout <<"Can't read current position of file";
return -1;
}
if (fseek (fp, 0, SEEK_SET) != 0)
{
cout <<"Beginning of File can't be seeked";
return -1;
}
if (fread(&x,sizeof(x),1,fp) != sizeof(x))
{
cout <<"file not read correctly";
return -1;
}
fread의 첫 번째 인수는 반드시 x가 아니라 & x이어야합니다. 그것은 char 버퍼에 대한 포인터를 원한다. char를 준다. –
네, 고쳐졌습니다. 나는 아직도 매달린다. – vivekian2
참고 : 파일을 찾을 수 없을 때 오류가 발생하지 않습니다 (스타일 등) – KevinDTimm