Visualizza la versione completa : [C++] Richiedere nome di file da tastiera
jonnyforever
12-01-2012, 16:38
printf("nome file inserito: \n");
gets(file);
fp=fopen(file,"r"); if (fp==NULL) {
printf("imposs. aprire file %s in lettura\n", file);
return -1;
}
salve a tutti amici di html, ho scritto questo codice per chiedere un nome di un file da tastiera (file di testo chiamato "file.txt" che ho già creato nella cartella di lavoro).
ma quando lancio il programma e digito il nome del file "file" mi dice imposs. aprere il file "file" in lettura perchè?? a me il codice sembra giusto e poi comunque ho dichiarato precedentemente una stringa file[NMAX] GRAZIE 1000
Probabilmente la directory di lavoro del tuo programma non è quella in cui si trova il file. Stai usando un IDE?
Tra parentesi, la gets va evitata come la peste (rende il tuo programma suscettibile a buffer overflow).
jonnyforever
12-01-2012, 17:23
sto usando codeblocks e comunque io avrei messo anche una scanf semplice.. cosa è un IDE? grazie :)
Originariamente inviato da jonnyforever
programma per chiedere nome di file da tastiera
Nel titolo manca il linguaggio di programmazione, richiesto come da Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887).
Qui l'ho inserito io (per la seconda volta consecutiva).
Ti invito per il futuro a seguire i suggerimenti che ti sono stati dati in questa occasione (http://forum.html.it/forum/showthread.php?s=&postid=13527399#post13527399).
jonnyforever
12-01-2012, 17:35
alka perdona la mia ignoranza ma piano piano ci riuscirò!! dove lo inserisco il linguaggio che uso?
Originariamente inviato da jonnyforever
alka perdona la mia ignoranza ma piano piano ci riuscirò!!
Non è questione di ignoranza, ma è questione di leggere e seguire quello che ti viene scritto.
Originariamente inviato da jonnyforever
dove lo inserisco il linguaggio che uso?
Nel mio messaggio ho scritto "Nel titolo manca il linguaggio di programmazione", quindi è ovvio che andrà inserito nel titolo.
E' altrettanto ovvio che mi riferisco alle discussioni che aprirai in futuro, dato che ho aggiunto "Qui l'ho inserito io".
Ho anche scritto di leggere il Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887), dove c'è scritto che
Per contattare un moderatore, fate uso dei messaggi privati.
Tu il file lo apri in lettura, quindi potrebbe essere che non te lo apre proprio perchè non l' hai ancora creato.
Quindi prova a fare (una sola volta) una fopen in scrittura:
fp=fopen(file,"w");
fclose(fp);
Una volta aperto il file in scrittura se non esiste, te ne creerà uno nuovo.
Per cui la prossima volta che apri il file in lettura sei sicuro che quel file esiste.
Anche questo era altrettanto ovvio (scherzo :malol: ).
jonnyforever
12-01-2012, 18:03
il file l ho creato e messo nella cartella di lavoro..ma non me lo fa aprire..nn saprei...
Come hai dichiarato file?
Forse non ha i permessi.Su che sistema operativo lavori?