bonjour,
je veux afficher les noms des fichiers et sous chaque nom de fichier afficher ses lignes;
ce code n'arrive pas à afficher le contenu des fichiers;
Code C/C++ :
#include <dirent.h>
#include <string>
#include <fstream>
#include <iostream>
bool isValid(const std::string& path)
{
return !path.empty() && path != "." && path != "..";
}
int main()
{
std::string ligne;
static const std::string folder = "abc";
DIR* rep = opendir(folder.c_str());
if (rep)
{ struct dirent* lecture;
while ((lecture = readdir(rep)))
{
if (!isValid(lecture->d_name))
continue;
std::cout << "\t\t" + folder + "/" + lecture->d_name <<std::endl;
std::string filename = lecture->d_name;
std::ifstream text(filename.c_str());
if (!text)
std::cerr << "Unable to read the file" << std::endl;
while (std::getline(text ,ligne))
std::cout << ligne << std::endl;
}
closedir(rep);
}
system("pause");
return (0);
}
le résultat obtenu c'est:
Code :
abc/doc1.txt
unable to read the file
abc/doc2.txt
unable to read the file
abc/doc3.txt
unable to read the file
pourquoi ce type d'erreurs si le dossier "abc" contient vraiment ces fichiers???
j'espère que vous pouvez m'aider à corriger ce type d'erreur.