IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

pb d'utilisation de string::unsetf(ios::skipws)


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv�
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par d�faut pb d'utilisation de string::unsetf(ios::skipws)
    Salut, j�ai un petit Pb de compr�hension (pour info je compile avec cygwin)

    Je suis dans un programme o� je me retrouve avec une ligne,
    qui comprends 3 infos, un Id une Date et une Valeur.
    Il n'y a pas de caract�re de s�paration je ne peux donc pas utiliser un getline.
    Par contre mes colonnes sont de tailles fixes (10,8,12)
    L'Id est une string que 10 caract�res compl�t� par des espaces.
    Le Pb survient � lecture, par d�faut skipws est � 1 donc les espaces ne sont pas pris en compte et la lecture est donc d�cal�.
    L'utilisation du unsetf semble empirer la lecture.
    Par contre en lisant le flux carac par carac �a marche operator >> (char*c)
    Je ne comprends pas comment le faire proprement pour r�cup�rer la string initial
    La solution suivante marche mais ne me plait pas trop:
    id=string(tab,tab+10);
    st.seekg(10);

    Merci d'avance pour vos pr�cisions et explications
    Cdt.
    Alsk
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    //------------------------------------------//
    //Code initial a tester avec et sans le unsetf  //
    //------------------------------------------//
    string id,date;
    int val;
    char tab[100];
    strstream st(tab,100);
     
    st.fill(' ');
    st.width(10);
    st<<"987654C";// entre l'id sur 10 carac
     
    st.width(8);
    st<<"20061007";// entre une date
     
    st.width(12);
    st.fill('0');
    st<< 1234567<<ends;// entre un chiffre
    cout <<"enter:"<< st.str()<<endl;
     
    //st.unsetf(ios::skipws);
     
    st.fill(' ');
    st.width(10);
    st>>id;
     
    st.width(8);
    st>>date;
     
    st.width(12);
    st.fill('0');
    st>>val;
     
    cout << id <<":"<< date <<":"<< val<< endl;

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    D�tails du profil
    Informations personnelles :
    �ge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par d�faut
    Bonjour,

    Utilises la balise [code], ce sera plus lisible.
    Et pour ton probl�me, pourquoi ne r�cup�res-tu pas ta ligne dans une string, que tu �clates ensuite en 3 avec la fonction substr ?

  3. #3
    Alp
    Alp est d�connect�
    Expert confirm�

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575

  4. #4
    Membre �prouv�
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 125
    Par d�faut
    l exemple est fait avec 3 colonnes mais en realite une ligne est compose de beaucoup plus d'�l�ments.

    jouer avec substr oblige a connaitre tous les indices et prendre en compte les colonnes pr�cedentes.

    Vous avez le meme pb lorsque vous utilisez le unsetf ?

Discussions similaires

  1. Utilisation de String.format()
    Par Moonwalker dans le forum Langage
    R�ponses: 4
    Dernier message: 03/04/2007, 12h17
  2. Utilisation de string
    Par Jiyuu dans le forum VB.NET
    R�ponses: 6
    Dernier message: 16/03/2007, 19h10
  3. pbm d'utilisation de string
    Par assif dans le forum C++
    R�ponses: 3
    Dernier message: 21/10/2006, 13h42
  4. [C#] ValueMember sans utiliser de string
    Par Jinroh77 dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 10/08/2006, 11h26
  5. R�ponses: 7
    Dernier message: 25/11/2005, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo