Partage
  • Partager sur Facebook
  • Partager sur Twitter

compter les lignes

    21 janvier 2007 à 19:04:58

    Bonjour tout le monde je doit faire un programme pour justifier un texte, j'arrive bientot à la fin mais je doit compter les lignes de mon texte pour pouvoir ensuite les dissocier et rajouter des espaces.
    problème: Je ne sais pas comment faire pour faire cela.
    Si vous pouvez m'aider se serait gentil car je s'atture!!!!
    merci d'avance

    j'ai oublier un petit détail c'est en c++
    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2007 à 20:28:31

      Utilises-tu SDL ?
      Ou est-ce un programme console ?
      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2007 à 20:31:16

        Peu importe le nombre de lignes. Lis tout avec un "while (std::getline(fux, uneLigne)) texte += uneLigne". Après, parse ton texte soit en extrayant chaque mot qui le compose à coup de ">>" sur un istringstream, soit à coup de boost.tokeniser et basta.

        Quand ceci sera bon, il y aura moyen de faire plus intelligent en entrelaçant lecture et écriture.
        • Partager sur Facebook
        • Partager sur Twitter
        C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
          21 janvier 2007 à 21:16:21

          merci de ton aide mais je ne veux pas utiliser des fonctions toutes faites
          • Partager sur Facebook
          • Partager sur Twitter
            21 janvier 2007 à 22:57:02

            Peu importe que tu utilises ">>", ou que tu recherches tes espaces à la main (quelle drôle d'idée d'ailleurs) ou avec std::string::find_first_of.
            L'algo reste le même.

            1- Charge ton texte
            2- Trouve tes mots
            3- Isoles les n mot suivants qui rentrent sur ta ligne desortie
            4- inscrit ta ligne en rajoutant un nombre d'espace qui va bien (delta entre le nombre de colones et la longueur des mots retenus divisé par le nombre de séparations)
            5- retour en 3-

            Une fois que tu arriveras à faire fonctionner ça, tu pourras faire de la lecture à la volée. Voire, si je puis dire faire dans les détails bas-niveaux -- mais concentres-toi d'abord sur l'algorithimique plutôt, il y a déjà assez à faire avec.
            • Partager sur Facebook
            • Partager sur Twitter
            C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
              22 janvier 2007 à 6:21:48

              Si tu connais le nombre de caractère par ligne :


              nbr_caractere / nbrCaractereParLigne
              Sachant que 0 correspondra à la ligne 1, enfin tu peux toujours marquer :

              nbr_caractere / nbrCaractereParLigne+1
              • Partager sur Facebook
              • Partager sur Twitter
                22 janvier 2007 à 20:06:58

                je vous remercie tous de votre aide mais j'ai beaucoup de mal à comprendre ce que vous me dite!!!
                Enfaite si vous voulez dans mon programme j'ai compter les caracteres, les mots, puis j'ai fait un retour à la ligne à chaque fois que l caracteres étaient depasser (l étant le nombre de caractere maximum par ligne) en recherchant le dernier espace de la ligne pour ne pas couper le mot. Maintenant je doit repartir mes espaces pour que la ligne soit bien égale à l caracteres et que les espaces restant soit diviser par le nombre de mots.
                EXEMPLE:
                j'en suis là:
                bon jour
                tout le
                monde. Ca
                va? Merci
                de votre
                aide.

                Mais je doit avoir ça:

                Bon jour
                tout le
                monde. Ca
                va? Merci
                de votre
                aide.


                Je ne sais pas du tout comment faire, tout bien reflechit je ne pense pas qu'il faut compter les lignes? Si vous pouvez m'aider ce serait tres gentil!!!
                • Partager sur Facebook
                • Partager sur Twitter
                  23 janvier 2007 à 0:18:40

                  Tu prends le problème à l'envers. Les tâches intermédiaires que tu t'es donnés sont des simplifications de ton problème qui ne sont pas vraiment réutilisables comme ça.

                  (Multipost -> http://www.developpez.net/forums/showthread.php?p=1690824)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
                    23 janvier 2007 à 20:54:57

                    ben tu voudrais pas m'expliquer un peu???
                    • Partager sur Facebook
                    • Partager sur Twitter

                    compter les lignes

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown