ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 2014
-
14 avril 2007 à 23:02
JejeLand
Messages postés111Date d'inscriptionmercredi 2 février 2005StatutMembreDernière intervention 5 août 2011
-
16 avril 2007 à 11:13
Bonjour,
J'ai déjà posé cette question, mais elle n'a été qu'à moitié satisfaite.
Je m'explique je suis en train de créer un programme qui necessite d'ouvrir tous types de fichiers : or avec la fonction actuelle que j'ai pour ouvrir les fichiers, le caractère ASCII 26 (SUB) n'est pas ouvert et stoppe complètement l'ouverture du fichier.
La dernière fois que j'avais posé ma question, la réponse ouvrait tous le fichier mais dés qu'il rencontrait le caractère SUB, il ajoutait des caractères.
Pour information, je souaiterai déposer ce programme sur cppfrance.com mais s'il n'ouvre pas tous les fichiers, il paraîtra inutile mais surtout non finis.
La réponse que j'ai suivit mais qui ne fonctionnait pas parfaitement était (je l'ai bien sûr transformé en fonction afin de pouvoir l'utilisé dans mon programme) :
// read file data using associated buffer's members
#include
#include <fstream>
using namespace std;
int main () {
filebuf *pbuf;
ifstream filestr;
long size;
char * buffer;
filestr.open ("test.txt");
// get pointer to associated buffer object
pbuf=filestr.rdbuf();
// get file size using buffer's members
size=pbuf->pubseekoff (0,ios::end,ios::in);
pbuf->pubseekpos (0,ios::in);
// allocate memory to contain file data
buffer=new char[size];
// get file data
pbuf->sgetn (buffer,size);
filestr.close();
// write content to stdout
cout.write (buffer,size);
return 0;
}
Si votre réponse fonctionne merci de me la faire savoir.