Probleme avec QT [Fermé]

Signaler
Messages postés
23
Date d'inscription
mardi 2 août 2016
Statut
Membre
Dernière intervention
30 octobre 2017
-
Messages postés
29812
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mai 2021
-
Bonjour chères amis je n'arrive pas a ouvrir mon fichier en Qt
pouvez vous m'aidez

voici mon code


QFile fichier("melo.txt");

         if(fichier.open(QIODevice::ReadOnly | QIODevice::Text))
         {
             int trouve = 0;
             QTextStream flux(&fichier);
             while(!flux.atEnd())
             {
                 if(chaine1 == flux.readLine() )
                 {
                     trouve = 1;
                     break ;
                 }
             }
                fichier.close();
         }

         else
         {
             QMessageBox::information(this, "Information", "Impossible d'ouvrir le fichier");
         }


mais on m'affiche toujours impossible d'ouvrir le fichier or le fichier est dans le meme sous dossier que mon programme.

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

Messages postés
29812
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mai 2021
7 095
Bonjour,

Pourquoi ne pas utiliser directement std::ifstream et std::getline?
http://www.cplusplus.com/reference/fstream/ifstream/
http://www.cplusplus.com/reference/string/string/getline/

#include <fstream>
#include <iostream>
#include <string>

int main() {
  const char *filename = "/etc/motd";
  std::ifstream ifs(filename);
  if (ifs) {
    std::string line;
    for (unsigned i = 0; std::getline(ifs, line); i++) {
      std::cout << "line " << i << " : " << line << std::endl;
    }
  } else {
    std::cerr << "Cannot read " << filename << std::endl;
  }
  return 0;
}


Ce qui donne :

(mando@velvet) (~) $ g++ toto.cpp 
(mando@velvet) (~) $ ./a.out
line 0 :
line 1 : The programs included with the Debian GNU/Linux system are free software;
line 2 : the exact distribution terms for each program are described in the
line 3 : individual files in /usr/share/doc/*/copyright.
line 4 :
line 5 : Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
line 6 : permitted by applicable law.


PS : Les puristes te diraient que ça s'écrit Qt, pas QT ;-)

Bonne chance