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 :

Décalage (alignement) C++


Sujet :

C++

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut Décalage (alignement) C++
    Bonjour,
    Un bout de programme me permet de générer un fichier texte où se trouve une liste de points avec une mise en forme particulière...
    Par exemple voici le résultat:
    " 9 :L P[9] R[1]sec FINE ;
    10 :L P[10] R[1]sec FINE ;"
    J'aimerai savoir si quelqu'un peu me dire comment je peux adapter mon programme afin que tous les points soient alignés (donc qu'il n'y est aucune différence que ce soit des dizaines ou centaines ect...).
    De même pour ces lignes :
    "P[118]{
    GP1:
    UF : 1, UT : 1, CONFIG : 'F U T, , ,0, 0',
    X = 695.44 mm, Y = -122.53 mm, Z = -10.06 mm,
    W = 5.18 deg, P = -2.54 deg, R = 162.65 deg"

    J'aimerai que les unités et les lettres en majuscules soient toujours alignées..
    Merci d'avance!!!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Lis ceci, et travaille avec les ostringstream.

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    tu peux utiliser '\t' qui est un caractère de tabulation ce qui te permet d'aligner des colonnes.

    Lis ceci, et travaille avec les ostringstream.
    J'aurais plutôt dis les ofstream. D'ailleurs qu'est-ce qui te ferait penser que ne l'utilise pas déjà?


    Sinon la F.A.Q donne quelques manipulateurs de flux assez intéressant si tu souhaites formater par la suite ton fichier (tu retrouveras les manipulateurs de flux évoqué dans le lien de oodini):
    http://cpp.developpez.com/faq/cpp/?p...stream_iomanip

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par Neckara Voir le message
    J'aurais plutôt dis les ofstream.
    Si tu veux. J'ai tendance à ne travailler sur les fichiers qu'au dernier moment.

    Citation Envoyé par Neckara Voir le message
    D'ailleurs qu'est-ce qui te ferait penser que ne l'utilise pas déjà ?
    Tu ne peux déduire que je pense qu'il ne les utilise pas.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut
    Merci Oodini c'est exactement ce que je voulais et oui je travaille déjà avec les ofstream

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut
    Si je peux abuser, j'ai une autre question bête! Maintenant que j'ai insérer \t, j'obtiens des espaces trop conséquent (=tabulation).
    fprintf (fichier, " %d:\t L P[%d] \tR[%d]sec FINE ;\n", i , i , A);
    ==> 1:L P[1] R[1]sec FINE ;
    Est-il possible d'ajuster ces espaces pour obtenir la mise en forme souhaitée ou dois-je utiliser une autre commande?
    Merci!

  7. #7
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Pour ajouter l'espacement, tu ne peux pas le faire coter programme avec /t, en effet, ce sont les logiciels qui liront ton fichiers qui décideront quel espacement maximum donner à ton /t.

    Si tu veux obtenir un fichier ou tu pourras positionner ce que tu veux où tu veux, tu peux créer une page HTML.

    Tu pourras alors mettre un titre, des images ...

    Sinon, la seule solution est d'utiliser un flux ostringstream pour commencer à stocker tout ton texte puis de le lire en incrémentant un compteur pour savoir combien de caractère d'espace ' ' tu dois mettre pour conserver un alignement tout en écrivant progressivement dans ton fichier avec un ifstream.

    Plus simplement :
    - lecture d'un mot dans le ostringstream
    - mesure de la taille du mot
    - on met le mot dans le ifstream
    - on calcul le nombre d'espace à rajouter
    - on met les d'espaces dans le ifstream
    - on recommence.

  8. #8
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Essaye de poser tes questions à la suite de ton sujets et de ne pas envoyer de mp en effet :
    - ceci permettra à tout le monde de pouvoir t'apporter son aide.
    - si jamais je te dis une bêtise (ou qu'il y a une méthode plus simple) en mp, il n'y aura personne pour me reprendre.


    En réponse à ton mp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    std::string mot;
    std::ostringstream >> mot;
    int size = mot.size();
    std::ifstream fichier;
     
    fichier << mot;
    for(int i = nbEspaceMax - size%nbEspaceMax; i != 0; ++i)
           fichier << " ";

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut
    Merci! Je comprend, j'y es pensée mais je suis vraiment débutante en programmation donc je me disais que peut-être il y avait une autre commande telle que "\t" et ça m'évitait de créer d'autres lignes, dommage!
    Pourriez vous m'indiquer les fonctions à utiliser pour :
    - lecture d'un mot dans le ostringstream
    - mesure de la taille du mot
    - on met le mot dans le ifstream
    - on calcul le nombre d'espace à rajouter
    - on met les d'espaces dans le ifstream

  10. #10
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 13
    Par défaut
    - si jamais je te dis une bêtise (ou qu'il y a une méthode plus simple) en mp, il n'y aura personne pour me reprendre.
    Tu inverses les istream et les ostream.
    Lecture : istream, Ecriture : ostream.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Décalage suite à un alignement vertical
    Par FixSan dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 23/03/2013, 10h29
  2. [Pentium] Optimisation - Alignement
    Par Blustuff dans le forum Assembleur
    Réponses: 58
    Dernier message: 05/04/2003, 17h01
  3. JBuilder7 & JTable Colonne alignement
    Par Tonton Luc dans le forum JBuilder
    Réponses: 5
    Dernier message: 06/11/2002, 17h32
  4. [Datareport] Alignement
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/11/2002, 11h53
  5. [VB6] [Printer] Chiffres alignés à droite
    Par Laye dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/10/2002, 18h36

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