Affichage et comportement étrange d'istringstream
Salut à vous !
J'essaie de faire une fonction qui a plus ou moins pour but de lire un fichier de filtre. Pour cela j'utilise istringstream afin de pouvoir séparer les mots. Normalement j'arrive à m'en servir sans problème. Mais là il se passe un truc assez zarbi : selon les lignes, mon istringstream semble avoir une attaque cérébrale ou un truc du genre, et me sors plusieurs fois la même ligne à l'affichage. Pire encore : lorsque j'essaie de lire les mots, j'ai l'impression que mon istringstream ne récupère jamais le premier mot de la ligne, ce qui est mine de rien assez problématique.
Voilà ma fonction : c'est en réalité un constructeur pour une classe qui prend une liste de filtres en paramètres.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| FilterList::FilterList(string fileName)
{
ifstream file(fileName.c_str(), ios::in);
string line, str;
string args[2];
bool lecture = false;
if (!file)
{
cerr << "Erreur de lecture du fichier de filtre" << endl;
}
while (getline(file, line))
{
//cout << line << endl;
istringstream ss(line);
while (getline(ss, str, ' '))
{
//cout << lecture << endl;
//cout << "istringstream" << endl;
cout << ss.str() << endl;
if (str != "")
{
//cout << "Lecture ligne non vide" << endl;
ss >> args[0] >> args[1];
//cout << args[0] << endl;
//cout << args[1] << endl;
if (args[0] == "###")
{
if (!lecture)
{
//cout << "lecture = true" << endl;
lecture = true;
continue;
}
else
{
//cout << "lecture = false" << endl;
lecture = false;
continue;
}
}
if (lecture)
{
cout << args[0] << " " << args[1] << endl;
filters.push_back(args[1]);
cout << filters.at(filters.size()-1) << endl;
}
}
}
ss.clear();
}
file.close();
} |
Et voilà ce à quoi ressemble le fichier que je dois lire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
| De: stats-sna-rp@regis-dgac.net de la part de stats-sna-rp [stats-sna-rp@regis-dgac.net]
Envoyé: mardi 23 juin 2015 10:58
À: olivier brillant
Objet: Tr : Demande VISTA Survols de Commune
-------- Message d'origine --------
De: stats-sna-rp@regis-dgac.net
Date: 23 juin 2015 10:47:37
Objet: Demande VISTA Survols de Commune
A: stats-sna-rp@regis-dgac.net
### VISTA-SC ### CERCLE ### JOURNEE ORDINAIRE ### SUPERPOSITION DE TRACES ###
EMETTEUR olivier.brillant@regis-dgac.net
MODE JOURNEE_ORDINAIRE
nb_indicatifs 2
indicatif_1 AF*
indicatif_2 VG
_choix_props OUI
_choix_jets OUI
_choix_heli OUI
_choix_typa_inconnus OUI
_choix_heavy OUI
_choix_light OUI
_choix_medium OUI
_fl_mini 001
_fl_max 60
_tracer_lignes_points Lignes
_choix_cercle_echelle OUI
_deborder_cercle NON
_FOND_CARTO aucun
_TRACER_DEPARTEMENT NON
_TRACER_COMMUNES OUI
_TRACER_TXT_VILLES NON
_echelle CDG5
_mode_comptage CERCLE
_nb_traj_max toutes
Date_1 01/06/2015
Date_2 02/06/2015
Date_3 03/06/2015
Date_4 04/06/2015
Date_5 05/06/2015
Date_6 06/06/2015
Date_7 07/06/2015
Date_8 08/06/2015
Date_9 09/06/2015
Date_10 10/06/2015
Date_11 11/06/2015
Date_12 12/06/2015
Date_13 13/06/2015
Date_14 14/06/2015
Date_15 15/06/2015
_nb_superposition 15
_X_lambert1 603716
_Y_lambert1 2414730
nom_ville_long OL
_rayon 5
_LFPO_DEP OUI
_LFPO_ARR OUI
_LFPN_DEP NON
_LFPN_ARR NON
_LFPV_DEP NON
_LFPV_ARR NON
_LFPG_DEP OUI
_LFPG_ARR OUI
_LFPB_DEP NON
_LFPB_ARR NON
_LFPT_DEP OUI
_LFPT_ARR OUI
_AUTRE_DEP NON
_AUTRE_ARR NON
REQUETE VISTA_CERCLE_L2E.ilv
flag_une_couleur_par_indicatif NON
_flag_masquer_indicatif NON
_new_mode_arr_dep OUI
_mode_fichiers_z NON
_fichiers_z_format_geo NON
_mode_eff_polylines_si_pas_comptee OUI
_mode_gommer_polylines_si_pas_comptee NON
_mode_nuage_de_points NON
_mode_superposition OUI
_mode_images_separees NON
_mode_un_jour_une_couleur_de_plot NON
_toggle_modulo_fl_avions NON
_toggle_modulo_indicatif NON
_toggle_modulo_fl_hhmmss_avions NON
_modulo_fl_avions 10
MODE_JOUR_NUIT MODE_JOUR_NUIT
VAL_JOUR_NUIT PAS_FILTRE_HEURE_ARRIVEE
### FIN MESSAGE ###
G_Version = 2015.03
WLogicielMail = ORLY_CMIT_TOUR. |
Une idée ? :/
Merci d'avance pour votre réponse. :)