Probleme avec seekg pour retourner au debut d'un fichier [Résolu]

cs_romain42 18 Messages postés vendredi 16 juillet 2004Date d'inscription 18 septembre 2008 Dernière intervention - 20 févr. 2007 à 16:28 - Dernière réponse : novaghost 27 Messages postés mercredi 31 janvier 2007Date d'inscription 4 avril 2007 Dernière intervention
- 20 févr. 2007 à 17:06
Bonjours,
j'essaie de programmer un menu basé sur un fichier de configuration
mais j'ai un problème quand je veux replacer mon pointeur au début du
fichier.
Ma fonction commence tout d'abord par calculer le nombre de lignes
(aucun problème), ensuite je doit relire le fichier en sauvegardant les données
qu'il contient. Mais voila impossible de revenir au début

Voila le code de ma fonction :

    fstream fichier;
    string temp;    unsigned int nombreDeLigne 0, x 0, y = 0;
    Object *image = NULL;

    // Ouverture du fichier à lire
    fichier.open("Menu.ini", ios_base::in);
    if(!fichier.is_open())
    {
cerr << "fichier charger" << endl;
return false;
    }

    // Calcul du nombre de ligne
    while(!fichier.eof())
    {
getline(fichier,temp);
nombreDeLigne++;
    }
    cout << "Il y a " << nombreDeLigne <<" lignes." << endl;

    // Retour au début du fichier
    fichier.seekg(0, ios::beg);
    cout << fichier.tellg();

    // Creation d'un tableau assez grand pour accepter toute les données
    image = new Object[nombreDeligne];
    if(image = NULL)
    {
cerr << "Impossible de creer un tableau de " << nombreDeLigne << " Object." << endl;
return false;
    }

    // Initialisation de toute les images.
    while(!fichier.eof())
    {
fichier >> temp >> x >> y;
image[1].initialisation(temp.c_str(),x,y);
    }

    // Fermeture du fichier.
    fichier.close();

    return true;

Si quelqu'un avait une solution elle me serait bien utile !
Merci d'avance pour vos réponses.
Romain
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
novaghost 27 Messages postés mercredi 31 janvier 2007Date d'inscription 4 avril 2007 Dernière intervention - 20 févr. 2007 à 16:35
2
Merci
// Retour au début du fichier
fichier.clear();
fichier.seekg(0, ios::beg);

le clear remet l'etat valide car le getline met un etat erreur lors de sa sortie

Merci novaghost 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de novaghost
cs_romain42 18 Messages postés vendredi 16 juillet 2004Date d'inscription 18 septembre 2008 Dernière intervention - 20 févr. 2007 à 17:02
0
Merci
Merciiiiiiiiiiiiii !!
Ca marche !!
Je me coucherai moin bete :)
Merci beaucoup.
Romain
Commenter la réponse de cs_romain42
novaghost 27 Messages postés mercredi 31 janvier 2007Date d'inscription 4 avril 2007 Dernière intervention - 20 févr. 2007 à 17:06
0
Merci
De rien ! ^^
Commenter la réponse de novaghost

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.