Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lecture d'un mot d'une phrase dans un fichier .txt

Lire un mot dans une phrase après le curseur

Sujet résolu
    10 juin 2023 à 12:41:38

    Bonjour

    Dans la continuité d'un sujet précédent je dispose d'un fichier .txt contenant le texte suivant :

    Bonjour tout le monde, je suis une phrase ecrite dans un fichier.


    J'aimerai amener le curseur à la fin de la phrase, puis le faire revenir 8 caractères en arrière et afficher dans la console le mot qui est devant lui donc "fichier.".

    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        //ifstream nécessite tellp
        ifstream monFlux("C:/Users/User/Documents/programme code blocks/programme en C++/modification_et_lecture_de_fichiers/scores.txt");
        monFlux.seekg(-8, ios::end);
    
        int position = monFlux.tellg(); //On récupère la position
    
        cout << "Nous nous situons au " << position << "eme caractere du fichier." << endl;
    
        string mot;
        monFlux >> mot;
        cout << mot << endl;
    
        return 0;
    }

    Le premier soucis est qu'il est affiché dans la console, que le curseur se trouve au 101ème caractère alors que la phrase n'en contient pas autant. Ensuite il y a dans la console le "le" de la phrase qui s'affiche à la place du "fichier." situé à la fin de la phrase.

    Quelqu'un voit-il pour quelle raison autant de caractères sont comptés et quelles instructions utilisé afin d'amener correctement le curseur devant "fichier." ?

    Cordialement

    -
    Edité par 1Stark 10 juin 2023 à 12:45:07

    • Partager sur Facebook
    • Partager sur Twitter
      10 juin 2023 à 13:28:53

      Ton fichier n'aurait-il pas d'autres lignes à la suite de celle que tu cites ?

      • Partager sur Facebook
      • Partager sur Twitter
      ...
        10 juin 2023 à 14:54:24

        J'ai fait un copier-coller de ton code et il fonctionne très bien.


        Si je met un CR à la fin, comme je suis sur Windows, j'ai 29 caractères au lieu de 27, et le programme affiche "ichier"

        J'ai pris la phrase: Ceci est une phrase dans un fichier

        -
        Edité par PierrotLeFou 10 juin 2023 à 14:59:55

        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          10 juin 2023 à 16:11:05

          Merci aux aideurs : 

          @rouloude il n y a pas d'autres lignes écrite dans mon fichier, mais il a du prendre en compte les caractères d'espace que j'avais laissé insoucieusement :

          @PierrotLeFou J'ai effacer les caractères d'espace dans le fichier, enregistré, fermé puis recompilé et le résultat a été celui attendu :

          Cordialement

          • Partager sur Facebook
          • Partager sur Twitter
            11 juin 2023 à 12:37:39

            Salut,

            1Stark a écrit:

            PierrotLeFou J'ai effacer les caractères d'espace dans le fichier, enregistré, fermé puis recompilé et le résultat a été celui attendu :

            Tu n'avais même pas besoin de recompiler dans le cas présent, car le résultat dépend exclusivement du contenu du fichier, ce qui fait que le simple fait de sauvegarder ton fichier et de relancer ton programme aurait pu suffir ;)



            • Partager sur Facebook
            • Partager sur Twitter
            Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait

            Lecture d'un mot d'une phrase dans un fichier .txt

            × 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