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 -
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ...
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 ...
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();
}
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();
}
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