no save
Assistance
Achat
News

Forum | programmation
Parcourir un fichier en C++
raphi, le mar. 24 févr. 2009 à 14:34:21
Bonjour,

Je fais actuellement un programme en C++ nommé IPCP qui charge sa configuration à partir du fichier de config.

La syntaxe du fichier de config est la suivante : dans chaque ligne tout ce qui est après le premier # est ignoré, et dans ce qui reste ce qui est avant le premier = est le nom de l'option et ce qui est après est sa valeur.

Pour faire simple je commence avec une seule option, backlog, dont la valeur est un int.

Donc dans le fichier de config j'ai mis :

backlog=5

J'ouvre le fichier avec fstream en lecture+écriture, je stocke toutes les lignes dans un vector<string> et après je parcours le vecteur pour parser chaque ligne une par une.

Seulement ça bugge ^^
Voici mon code :


#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <string>
#include <fstream>
#include <iostream>

using namespace std;

int stringToInt(string chaine);
long stringToLong(string chaine);
float stringToFloat(string chaine);
double stringToDouble(string chaine);
bool stringToBool(string chaine);

int main()
{
vector<string> config_ipcp;

cout << "Lancement de IPCP 0.1.1" << endl;
fstream fichier_config("config.ipcpcfg", ios::in | ios::out | ios::ate);
if (!fichier_config)
{
cout << "ERREUR lors du chargement du fichier de config" << endl;
return 1;
}
while (!fichier_config.eof())
{
config_ipcp.push_back("");
getline(fichier_config,config_ipcp.back());
cout << "Ligne actuelle : " << config_ipcp.back() << endl;
//int ligne=config_ipcp.size();
/*if (config_ipcp[ligne].empty())
{
config_ipcp.pop_back();
}*/
}
cout << "Nombre de lignes : " << config_ipcp.size() << endl;

return 0;
}


Donc là je ne fais qu'afficher chaque ligne puis le nombre de lignes.
Dans mon fichier j'ai mis 3 lignes et quand je teste ce code, il affiche une ligne vide ("Ligne actuelle : ") et à la fin il me dit "Nombre de lignes : 1".

Où est le problème et comment le régler ?
Merci beaucoup :D
Bonne journée !Configuration: Linux
Opera 9.63


Char Snipeur
24 févr.
Suivant
REPONSES
Char Snipeur
24 févr.
raphi
24 févr.
raphi
24 févr.
Version Web
Réalisé par RedShift
no save