Forum Programmation.c++ Lire un fichier texte en entier

Posté par (page perso) .
Tags : aucun
0
1
nov.
2005
Bonjour,
J'ai codé un petit module facilement importable dans un projet pour gérer des shaders en GLSL (OpenGL Shading Language). Soucieux de la portabilité de mon code, j'ai été sous Windows le compiler voir ce que ça donnait, et voilà que je me retrouve avec un bug étrange.

J'ai une fonction chargée de lire un fichier texte en entier. Sur les 14 fichiers lus dans mon programme de test, un seul échoue bizarrement : à la fin du buffer je me retrouve avec un double de la fin du fichier (quelques octets). J'ai essayé en créant un nouveau fichier puis en recopiant son contenu (mais ça a peut-être recopié des caractères spéciaux méchants ?).

J'ai récrit un programme minimal en C++ pour lire un fichier texte et l'afficher, et avec ce même fichier de teste ça bug toujours ! Alors peut-être que je m'y prends mal pour lire un fichier. Si je passe ios::binary à ifstream::open(), le fichier est correctement lu...

* http://tfc.duke.free.fr/tmp/ifstream/read.cpp : programme minimal
* http://tfc.duke.free.fr/tmp/ifstream/brick.vert : le vilain fichier à lire
* http://tfc.duke.free.fr/tmp/ifstream/output.txt : le resultat que j'ai

Quelqu'un aurait-il une idée de ce qui se passe ?

PS: Je compile sous MinGW (gcc 3.4.2) et ça me le fait sur deux Windows différents (mais avec le même mingw).

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.