Probleme avec QT

melo96 Messages postés 27 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    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
    0