View Full Version : linguaggio C, sempre sulla questione di prima
La funzione che dicevo prima prende in input il nome del file di testo. Dopo aver verificato l'esistenza del file, ne immette i valori in una lista...contando che la funzione è giusta perchè la fatta il prof... è normale che dando in input il codice
FILE* file;
file = fopen("z:prova.txt", "wr");
if(file != NULL) {
fprintf(file, "hello world");
fclose(file);
}
(fornito gentilmente da un utente del forum che ringrazio tantissimo e prego di aver pazienza perchè sono pessima in informatica) nella stampa a video non ottengo praticamente nulla... Avrei voduto visualizzare la lista, ma così non è stato...
Qualcuno sa dirmi i probabili motivi?
vegeta83ssj
03-04-2009, 17:59
Semplicemente perché il tuo codice non fa altro che aprire il file e scriverci dentro la stringa "hello world" per chiuderlo subito dopo. ;)
Forse ti serve solo la fopen. Cioè:
FILE* file;
file = fopen("percorso del file", "r"); //r sta per "in lettura"
if(file != NULL) {
//qui "file" è il file da leggere. probabiolmente lo passerai alla funzione.
//una volta finito di leggere
fclose(file);
}
"percorso del file" è il percorso del file che contiene i dati che la funzione del tuo prof leggerà. Tipo "c:\\lista.txt".
Naturalmente affinchè la funzione del tuo prof possa leggere i dati dal file dovrai invocarla. Se ha semplicemente la forma:
nome(FILE* f)
allora basterà dire:
FILE* file;
file = fopen("percorso del file", "r"); //r sta per "in lettura"
if(file != NULL) {
nome(file);
fclose(file);
}
Se, com'è più probabile, la funzione richieda un ulteriore parametro e restituisca un valore allora... be', bisogna vedere cosa vuole la funzione. :D.
limpid-sky
04-04-2009, 13:00
Mi unisco al topic senza aprirne un altro.
Volendo scegliere il nome del file da aprire a tempo di esecuzione come posso fare?
Mi servirebbe in c++.
Ottengo un errore dal compilatore perchè ifstream vuole il nome del file tra virgolette. per esempio ifstream in("testo.txt");
Come si può fare qullo che chiedo?
string nomefile;
cout<<"Inserisci il nome del file:";
cin>>nomefile;
ifstream in;
in=nomefile;
if (in.is_open())
{
cout<<"file aperto\n";
}
else cout << "File non trovato";
Don[ITA]
04-04-2009, 15:30
ifstream (http://www.cplusplus.com/reference/iostream/ifstream/)
void loadFile(string& filename) {
ifstream file(filename.c_str(), ios::in); //ios::in vuol dire permettere operazioni di input sullo stream
....
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.