Urgence c++

Résolu
yanlou Messages postés 119 Statut Membre -  
yanlou Messages postés 119 Statut Membre -
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

  1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    tu vedrai tester la presence du character"-" car si il n y est pas, sousligne2=sousligne1
    0
  2. yanlou Messages postés 119 Statut Membre 13
     
    non, voila un exemple :

    1) j'ai une chaine :

    AEZCDA2-D2

    2) je doit avoir :

    AEZCDA2 AEZCDD2
    0
  3. yanlou Messages postés 119 Statut Membre 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
  4. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    es ce que ca peut arriver que tu aii des trucs comme ca: AEZCDA2-D2-A5-R3 ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yanlou Messages postés 119 Statut Membre 13
     
    non, just commeça

    AEZCDA2-D2
    ESRZDA3
    0
  7. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
  8. yanlou Messages postés 119 Statut Membre 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
  9. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
  10. yanlou Messages postés 119 Statut Membre 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
  11. yanlou Messages postés 119 Statut Membre 13
     
    ya kélk1 pour m'aidé ?!!
    0