J'ai l'exemple suivant:signale une erreur dans les flux de fichiers dans C++
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream file;
cout << file << endl; // 0xbffff3e4
file.open("no such file");
cout << file << endl; // 0
cout << (file == NULL) << endl; // 1
cout << file.fail() << endl; // 1
}
Si le fichier est NULL
, comment est-il possible d'appeler la fonction membre fail
? Je ne suis pas très familier avec C++, est-ce un comportement normal? Qu'est-ce que je me trompe ici?
Ah. Et j'ai essayé static_cast pour annuler * pour voir s'il y avait de la magie surchargée cachée derrière la scène! Apparemment, il y avait encore plus de magie que ce à quoi je m'attendais. Je vous remercie. – zoul