Urgence c++

Résolu/Fermé
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 - 7 juil. 2008 à 11:10
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 - 7 juil. 2008 à 12:26
Bonjour,

j'ai u fichier txt qui contient des chaine de caracté, exemple :

RFRPAD7
RFRPAD8-A8
CDXRTD3-A3
FGDTRE
ATZRSD5-A5

bon voila le code que j'ai mais ça donne pas le resultat que je veux obtenir.
ça donne un truc commça :

RFRPAD7 RFRPAD7
RFRPAD8 A8
CDXRTD3 A3
FGDTRE2 FGDTRE2
ATZRSD5 A5


maximus #include <string>
#include <fstream>
#include <iostream>
using namespace std;
int main()
{

ifstream fichier("slash.txt");
if (fichier)
{
string ligne;

while (getline(fichier,ligne))
{

size_t pos=ligne.find_first_of("-");
string sousligne1=ligne.substr(0,pos);

string sousligne2=ligne.substr(pos+1);

cout<< sousligne1 << " " << sousligne2 << endl;
}
}
fichier.close();
}

mais sais pas ce que je veux avoir comme resultat
le resultat que je cherche c'esyt ça :

RFRPAD7
RFRPAD8
RFRPAA8
CDXRTD3
CDXRTA3
FGDTRE2
ATZRSD5
ATZRSA5

10 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
7 juil. 2008 à 11:13
tu vedrai tester la presence du character"-" car si il n y est pas, sousligne2=sousligne1
0
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 13
7 juil. 2008 à 11:27
non, voila un exemple :

1) j'ai une chaine :

AEZCDA2-D2

2) je doit avoir :

AEZCDA2 AEZCDD2
0
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 13
7 juil. 2008 à 11:29
mais avec le code que j'ai j'obtien ça
AEZCDA2 D2
est bien sur ce n'est pas ce que je veux :p
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
7 juil. 2008 à 11:29
es ce que ca peut arriver que tu aii des trucs comme ca: AEZCDA2-D2-A5-R3 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 13
7 juil. 2008 à 11:36
non, just commeça

AEZCDA2-D2
ESRZDA3
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
7 juil. 2008 à 11:45
j ai pas le temps de le faire.
utilises les fonctions du C: strchr ou ce genre de chose,
detecte la position du -, si il n y en a pas, tu copies direct la chaine
si il y en a un, tu gardes bien son pointeur, tu met le contenu a 0
tu imprimes la premiere chaine

ensuite, tu incremente ton pointeur qui pointait sur le - que tu as remplkacé par 0

tu recupère la longeur de la premiere chaine, la longueur de la 2eme chaine
et tu fais un strcpy(première chaine+(strlen(premierechaine)-strlen(deuxieme chaine))), deuxieme chaine

et la tu re imprime la premiere chaine ...
0
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 13
7 juil. 2008 à 11:49
avec ce code j'obtien pour une chaine comme ça

AFRZSA2-D2
ADDSEA3

le resultat

AFRZSA2 AFRZSD2
ADDSEA3 ADDSEA3 // je veux pas que cette chaine ce double je veux avoir ADDSEA3



#include <string>
#include <fstream>
#include <iostream>
using namespace std;
int main()
{

ifstream fichier("slash.txt");

if (fichier)
{
string ligne;


while (getline(fichier,ligne))
{

size_t pos=ligne.find_first_of("-");


string sousligne1=ligne.substr(0,pos);


string sousligne2=ligne.substr(pos+1);

string sousligne3=sousligne1.substr(0,sousligne1.size()-2).append(sousligne2);


cout<< sousligne1 << " " << sousligne3 << endl;

}
}

fichier.close();
}
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
7 juil. 2008 à 11:53
je sais pas si ce que je veux te faire faire avec les strcpy et les pointeurs est utilisable sur un objet string .... utilise des tableaux de charactères plutot, a la vieille franquette
0
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 13
7 juil. 2008 à 12:10
je pense que ça va marché avec un if...else bein je vais esséyé et si ya kélk1 ki peux aidé ça sera la bien venu :p
0
yanlou Messages postés 119 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 11 août 2010 13
7 juil. 2008 à 12:26
ya kélk1 pour m'aidé ?!!
0