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." ?
@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 :
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
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.
Le Tout est souvent plus grand que la somme de ses parties.