Prise en compte des espaces

cytosyn2 Messages postés 2 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 27 avril 2010 - 26 avril 2010 à 22:40
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 - 17 juil. 2010 à 20:38
Bonjour à tous.

J'ai un petit programme qui scanne un fichier texte et crée un nouveau fichier identique au premier sauf certains caractères remplacés.

Ca ressemble à ça

#include <fstream>
vector v;
string f1,f2;
f1=...
f2=...
ifstream fi(f1.c_str(),ios::in);
ofstream fo(f2.c_str(),ios::out);
while (fi) {

fi>>c;
if(c==...) {fo<<...}
else {fo<<...}

}

fi.close();
fo.close();


Mon problème : dans le nouveau fichier, tous les espaces ont disparu ! Comment faire ?

Merci à tous pour vos réponses.

3 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
27 avril 2010 à 09:50
Lorsque tu fais "fi >> c" tu récupère les mots sans les espaces.
Pour tout récupérer, regarde du côté de la fonction std::getline (qui récupère une ligne entière plutôt qu'un mot).
Je pense que "std::getline(fi, c);" devrait faire l'affaire.

Autre petit détail: Évite les using namespace std ! Voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace

_____________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
0
cytosyn2 Messages postés 2 Date d'inscription lundi 26 avril 2010 Statut Membre Dernière intervention 27 avril 2010
27 avril 2010 à 10:55
Désolé si j'ai omis de préciser, mais "c" est un char, pas un mot entier.

Il n'y a pas une astuce pour récupérer tous les caractères y compris les espaces ?
0
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 1
17 juil. 2010 à 20:38
Si, comme l'a indiqué CptPingu: std::istream::getline
0
Rejoignez-nous