PDA

View Full Version : [C++] leggere file - Non capisco + nulla!!


shang84
19-10-2005, 15:39
ciao a tutti,
sto provando questo semplice codice che serve a leggere ogni carattere di un file, ma ogni volta mi da "error opening file", come mai? Il file da aprire è nella cartella dei sorgenti. Ho provato anche a dargli il path completo ma non funziona.

NB: sto usando devC++ 4 sotto Win Xp.

Grazie!

CODICE:

#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;

int main () {

ifstream infile;
infile.open ("test.txt");
if (infile.is_open())
{
while (infile.good())
cout << (char) infile.get();
infile.close();
}
else
{
cout << "Error opening file";
}
char any;
cout << "\ndigit: any char+return to end the program\n";
scanf ("%c",&any);

return 0;


}

DanieleC88
19-10-2005, 16:07
"test.txt" esiste, vero? :D

0rph3n
19-10-2005, 16:34
Il codice sembra corretto!
Magari come dice DanieleC88 il file non esiste ( :sofico: ) oppure hai problemi con i permessi del file, prova a controllare!

DanieleC88
19-10-2005, 17:43
Ho appena provato praticamente. Funziona. Quindi... non hai creato "test.txt". :D :rotfl:

0rph3n
19-10-2005, 17:46
Vabbè dai può capitare...
...però quando capita è bello riderci sopra! :D
se ripenso a quando succedevano a scuola cose del genere...

slartibartfast
19-10-2005, 18:45
Il file da aprire è nella cartella dei sorgenti.

Il file piazzalo nella directory dell'eseguibile ;)

Ho provato anche a dargli il path completo

Ricordati che i dos/windows i separatori per le directory sono i backslash, che per inserirli in una stringa nei progammi C bisogna metterli doppi es:

infile.open ("c:\\prove\\test.txt");

shang84
21-10-2005, 16:48
Il file piazzalo nella directory dell'eseguibile ;)



Ricordati che i dos/windows i separatori per le directory sono i backslash, che per inserirli in una stringa nei progammi C bisogna metterli doppi es:

infile.open ("c:\\prove\\test.txt");

grazie a tutti!
Ho sbagliato nei seguenti punti:
1 - usavo le / anzichè \ -> sn abiutuato a programmare sotto linux :D
2 - avevo dimenticato di rinominare il file prova.txt con test.txt

Thanks ancora!