PDA

View Full Version : dubbio su fopen()


telluccio
28-09-2005, 00:10
ciao a tutti...gentilmente qualcuno vuole illuminarmi al riguardo di fopen?
mi spiego.. all interno di main() dichiaro che il *pf sia cio che fopen() restituisce in lettura
*pf=fopen(file.txt,"r");
stampo a video...e scelgo solo una delle stringhe del file...e poi la voglio salvare...
ho provato ridichiarare
*pf=fopen(stringafile.txt,"w");
con esito negativo...ho provato a salvare la stringa in un vettore per passarla ad una nuova funzione che salvi il file
sempre picche!!!
forse devo concatenare 2 programmi uno per leggere..l altro per scrivere..pero spero faccia con uno solo...
spero di essermi spiegato...
non posto il listato perche lo DEVO fare io...
ciao e grazie

anx721
28-09-2005, 01:06
spero di essermi spiegato...


direi proprio no....

qual'è il problema che hai? se non ce lo dici no ti si puo aiutare, errori in compilazione, in esecuzione? crash del programma? non leggi niente dal file? leggi qualcosa mentre ti aspetti di leggere un'altra cosa? spiegati....

telluccio
28-09-2005, 13:44
chiedo scusa...un mio diffetto e quello di non spiegare bene..
il programma funziona (nessun error o warring),
prima fopen mi legge e visualizza il file diviso per stringhe,
quando mi interessa una stringa la salvo in un vettore.
poi vorrei che lo salvasse in un nuovo file.
dentro main ho provato ha dichiarare una nuova istruzzione con un nuovo FILE* dove fopen e in scrittura..
un altra prova e stata quella di passare il vettore ad una mia funzione dove fopen scriva il vettore in nuovo file...
in tutti i casi il programma viene compilato ed eseguito...pero il file non nasce..
cio non acade quando fopen e usato solo in una delle modalita..
la mia domanda e :
una volta che fopen() e dichiarata in lettura la si puo ridichiarare in scrittura??
io non sono riuscito...pero e vero che sono un novizio...
grazie ,ciao

anx721
28-09-2005, 14:15
per aprire un file in scrittura fai cosi:

File *wpf=fopen("stringafile.txt","w");

e alla fine

fclose(wpf);

Fenomeno85
28-09-2005, 14:21
per aprire un file in scrittura fai cosi:

File *wpf=fopen("stringafile.txt","w");

e alla fine

fclose(wpf);

e controlla sempre il puntatore ;)


~§~ Sempre E Solo Lei ~§~

Andreaf22
28-09-2005, 22:10
Magari sarebbe utile vedere il codice che hai scritto. Hai utilizzato un fprintf?

Ziosilvio
28-09-2005, 23:23
all interno di main() dichiaro che il *pf sia cio che fopen() restituisce in lettura
*pf=fopen(file.txt,"r");
fopen restituisce un puntatore a FILE. Inoltre, entrambi i suoi argomenti sono puntatori a char.
Se pf è un puntatore a FILE, allora la sintassi giusta è:
pf=fopen("file.txt","r");
La sintassi:
*pf=fopen("file.txt","r");
sarebbe corretta se pf fosse un puntatore a puntatore a FILE.

anx721
29-09-2005, 01:24
fopen restituisce un puntatore a FILE. Inoltre, entrambi i suoi argomenti sono puntatori a char.
Se pf e' un puntatore a FILE, allora la sintassi giusta è:
pf=fopen("file.txt","r");
La sintassi:
*pf=fopen("file.txt","r");
sarebbe corretta se pf fosse un puntatore a puntatore a char.


Il codice presentato

*pf=fopen("file.txt","r");

è lecito se è stato ottenuto troncando l'intera istruzione:

FILE *pf = fopen("file.txt","r");

(come io l'avevo intesa); altrimenti l'istruzione è corretta solo se pf è un puntatore a puntatore a FILE (che c'entra il puntatore char ?)

Ziosilvio
29-09-2005, 16:30
che c'entra il puntatore char ?
Infatti è un errore. Grazie. Adesso correggo.

telluccio
29-09-2005, 18:18
grazie a tutti...
ho risolto...il mio non era un problema di dichiarazzione di *fp....
ma di gestione del vettore che deve contenere il valore di *fp...
ciao

Fenomeno85
29-09-2005, 19:44
grazie a tutti...
ho risolto...il mio non era un problema di dichiarazzione di *fp....
ma di gestione del vettore che deve contenere il valore di *fp...
ciao

gestione? :mbe:


~§~ Sempre E Solo Lei ~§~

telluccio
30-09-2005, 17:48
:doh: io per gestione intendo salvare nel vettore cio che *FILE restituisce in lettura per poi passarlo in scrittura in nuovo file.
ciao