Test d'existence de fichier c++

Charles -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai écrit un programme c++ pendant lequel je teste l'existence d'un fichier à l'aide de la fonction "is_readable". Lorsque j'appelle la fonction depuis le main et que le fichier existe, la fonction me retourne bien la valeur true mais quand je l'appelle depuis void lecture, la fonction "is readable" me renvoie la valeur false alors que le fichier existe toujours... Pourquoi?

Merci de vos réponses

Ci dessous le code:

#include <string>
#include <fstream>
#include <iostream>
#include <sstream>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

using namespace std;

bool is_readable( const std::string file )
{
std::ifstream fichier( file.c_str() );
return !fichier.fail();
}
void lecture(std::string name_file, int nline, int& npoints);
int main(void)
{
string name_file;
name_file="parameters.txt";
if ( is_readable(name_file))
{
cout << "Reading the file " << name_file;
cout << "\n";
}
else
{
cout << "Error: Cannot open the file " << name_file << endl;
exit(0);
}
lecture(name_file,ExpFileLine[i],nexppoints[i]);
return 0;
}
void lecture(std::string name_file, int nline, int& npoints)
{
using std::cout;
int count = 0;
if ( is_readable(name_file))
{
cout << "Reading the file " << name_file;
cout << "\n";
std::ifstream fichier( name_file.c_str() );
...
}
else
{
cout << "Error: Cannot open the file " << name_file << endl;
exit(0);
}
}
A voir également:

3 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
n'empêche que j'avais raison. Ce lien est plus clair :
https://en.cppreference.com/w/cpp/io/basic_ios/fail
fail() ne donne d'information que si tu tente une opération sur le fichier. Et là tu ne fait rien, tu ne tente même pas de l'ouvrir. Donc, il est possible que le comportement de fail soit indéterminé dans ce cas là (la doc n'en parle pas).
Henri, tu n'as pas compris l'esprit des forum, le but n'est pas d'arriver avec une solution toute faîte à la manière d'un prof, mais d'apporter un aide, un nouvelle idée pour avancer. Et toi, tu rentre dans la catégorie des péteux qui descendent tout en fleche sans jamais rien construire.
Les critiques constructives sont les bien venus, mais là, tu n'apporte rien !
3
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
Je ne suis pas sur que ça soit la bonne manière d'utiliser fail et detester un fichier.
à mon avis, il faut mieux tester l'ouverture.
http://www.cplusplus.com/reference/ios/ios/fail/
0
Henri
 
> Je ne suis pas sur

Alors ne réponds-pas.

il faut mieux tester l'ouverture.

De mieux en mieux...
-1