Urgence c++

Résolu
yanlou Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   -  
yanlou Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   3 193
 
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   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention   13
 
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   Statut Contributeur Dernière intervention   3 193
 
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   Statut Membre Dernière intervention   13
 
non, just commeça

AEZCDA2-D2
ESRZDA3
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
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   Statut Membre Dernière intervention   13
 
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   Statut Contributeur Dernière intervention   3 193
 
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   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention   13
 
ya kélk1 pour m'aidé ?!!
0