Lors de la lecture d'un fichier binaire en utilisant DJGPP sous DOS ce code se bloque. Cela se produit lorsque l'appel Fread est fait. Si l'appel est supprimé, le programme s'exécute correctement. Le même code fonctionne correctement via Visual C++ 2008. Est-ce que quelqu'un a rencontré des problèmes similaires avec djgpp? Est-ce que je rate quelque chose de vraiment simple?erreur de fread avec DJGPP
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;
}
Le premier argument de fread devrait sûrement être & x et pas seulement x. Il veut un pointeur vers un tampon char, vous lui donnez juste un char. –
Oui, j'ai corrigé ça. Je me fais toujours pendre. – vivekian2
note: vous ne faites pas d'erreur lorsque le fichier n'est pas trouvé (un point de style, en tant que tel) – KevinDTimm