Bonjour à tous!
J'ai un problème avec un bout de code qui passe sous Linux gcc, Vista (avec VS2005) et qui ne passe pas sous XP (toujours avec VS2005).
Voici la portion en question:
Ce bout de code fonctionne comme esperé sous Linux (g++) et Vista (VS2005), mais, sous XP (VS2005), au bout de quelques lectures, un failbit est levé et la, plus rien n'est lu correctement. A prioris un problème de cast vers unsigned int long long, mais le grand mystère pour moi, c'est pourquoi cela marche comme convenu sur d'autres OS et surtout pourquoi le début de la lecture marche bien et plante, accessoirement, toujours au meme endroit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ifstream in; in.open(chemin, ios::in | ios::binary); bool fin=0; unsigned int long long test; while (!fin) { in>>test; ...... }
J'ai penser que c'etait un "caractère" précis qui faisait dysfonctionner, mais, je retrouve ce caractère dans d'autres fichiers et celui ci est bien lu, par contre, ca plante toujours un peu plus tard.
J'ai aussi pensé que ca pouvait planter toujours après un certain nombre de lecture, et la encore, ca varie selon le fichier. Pour un fichier X, ca plantera toujours au bout de la 10ième lecture, et pour un fichier Y, toujours au bout de la 15ième, etc...
Bref, je suis perdu et déconcerté car la plate forme de prédilection de cette application sera XP et aucune autre.
Si quelqu'un peut éclairessir ma situation, je lui serai reconnaissant.
Merci bien et bonne journée.
Partager