Verificare esistenza file con libreria <fstream>

di il
2 risposte

Verificare esistenza file con libreria <fstream>

Ciao a tutti, ho usato questo modo per verificare l'esistenza di un file tramite stream:

ifstream trova ("C:\\Users\\Luca\\Documents\\ciao.txt");

if (!trova)
{
   cout<<"il file non esiste ";
}
else
{
   cout<<" il file esiste";
}

Funziona perfettamente, ma sarei interessato a comprenderne il funzionamento. Come fa a trovare il file?
A me sembra che a "trova" di tipo ifstream li venga assegnato il pathname. Cosi, se lo stream non corrisponde vuol dire che il file non esiste. Mentre se corrisponde e quindi il file si trova nel pathname indicato, il file esiste. Inoltre, se dopo inserisco l'istruzione:
 cout<<trova; 
mi stampa a video il risultato 0 se il file non c'è, e un indirizzo di memoria se il file esiste e quindi è stato trovato... E questo mi fa pensare ad un puntatore. Nonostante conosco bene le operazioni con i file (almeno credo), ho davvero le idee confuse sul funzionamento di questo codice, che sarei davvero curioso di capire...
Grazie in anticipo

2 Risposte

  • Re: Verificare esistenza file con libreria <fstream>

    Sai cosa è un costruttore?
  • Re: Verificare esistenza file con libreria <fstream>

    Innanzitutto ti ringrazio per la risposta, soprattutto per domande basilari come questa.
    Comunque, riguardo ai costruttori credo di aver intuito cosa sono... Ho creato un costruttore, quindi? Intendo dire, il costruttore si è formato avendo dichiarato un oggetto della classe fstream?
    Ma comunque, come fa a verificare se il file esiste o meno? Sono davvero curioso di capire... Credo di aver capito bene il capitolo dei file sul mio libro a scuola, ma per questo codice ci sto perdendo la testa ma non riesco comunque a comprendere il funzionamento...
Devi accedere o registrarti per scrivere nel forum
2 risposte