View Full Version : Help con fprintf in C
Ciao a tutti,
qualcuno mi saprerbbe dire perche'
la fprintf scrive su file partendo dall'inizio e non dalla
fine come mi sarei aspettato?
(avendo aperto il file in append)
es fprintf(...,a);
fprintf(...,b);
nel file trovo
b a :muro:
grazie
Dario.
RaouL_BennetH
10-05-2007, 11:38
strano, io il file in append lo apro prima con fopen:
FILE *FP;
char *filename = "mio_file";
fp = fopen(filename, "a");
fprintf(fp, "........", nuovo_input, una_stringa);
magari posta un po' pił di codice
nel dubbio puoi provare a mettere fflush(...) tra una fprintf e l'altra e vedere se cambia qualcosa
Ecco un po' piu' di codice, per quanto riguarda la fflush il buffer dovrebbe essere vuoto perche' comunque stampa un carattere per volta.
FILE *fp;
FILE *out;
out=fopen("output.txt","a");
if(argc<2){
printf("inserisci il file iniziale \n");
return;
}
if((fp=fopen(*++argv,"r"))==NULL){
printf("non posso aprire il file %s \n",*argv);
return;
}
else
{
fscanf(fp,"%f",&x_min);
fscanf(fp,"%f",&y_min); //prende la dimensione del rettangolo
fprintf(out,"%.1f\n",x_min);
fprintf(out,"%.1f\n",y_min);
close(out);
close(fp);
Grazie per le risposte.
Rifacendomi al tuo primo esempio hai detto che eseguendo
fprintf(f,"a\n");
fprintf(f,"b\n");
nel file viene scritto b e poi a, io pensp che l'esecuzione viene invertita, poiche se fosse stato scritto prima a, i casi sono due o "b" viene scritto sotto ad "a" oppure "a" viene sovrascritto da "b". Prova a mettere, come gią ti hanno suggerito, una fflush(..) tra le due fprintf per forzare la scrittura.
Si avevate ragione con la fflush() funziona bene :asd:
Grazie mille a tutti!!!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.