Leggere e Scrivere in un file [RISOLTO]

di Anonimizzato10896 il
4 risposte
Salve a tutti!
Ho la necessità di leggere da un file e successivamente riscrevere quanto letto in un altro file.
Ho provato quindi a scrivere il seguente codice:
#include <stdio.h>
#define HOSTFILE "/root/Desktop/test.txt"
#define MYHOST "/root/Desktop/mio.txt"

main(){
	FILE * fp;
	FILE * fp2;
	char lettura;
	fp = fopen(HOSTFILE,"r");
	
	if (!fp) {
		printf ("Impossibile aprire il file in lettura.");
		return;
	}
	else {
		fp2 = fopen(MYHOST,"w");
		if (!fp2) {
			printf ("Impossibile aprire il file in lettura.");
			return; }
		else{
			while ((fscanf (fp, "%c",&lettura)) > 0){
				fprintf (fp2, "%c", &lettura);
				printf ("%c", lettura);
			}
		}	
	printf ("Eccoci a fine ciclo");
	fclose(fp2);
	fclose(fp);
	}
}
Purtroppo però, nonostante il file venga letto correttamente ed il contenuto stampato a schermo, non viene poi però scritto all'interno del secondo file, o meglio vengono scritti caratteri incomprensibili (piccoli rombi).
Non mi smebra vi sia alcun errore nel codice, ma a quanto pare c'è.
Come posso riparare il problema?

Confido in voi,
grazie dell'aiuto

4 Risposte

  • In fprintf() usi &lettura mentre in printf(), lettura.
  • Perfetto! Grazie!
    Scusa, sono un po' confuso, ma perchè se con fscanf uso "&lettura" non devo usarlo anche in fprintf?
  • Fscanf() si aspetta una locazione valida dove mettere ciò che acquisisce e devi fornirla tu, tenendo presente la stringa di formattazione; fprintf() invece si limita a prelevare ciò che passi e stamparlo su file in base alla stringa di formattazione che gli passi.
  • Grazie mille, finalmente ho capito!

    Risolto!
Devi accedere o registrarti per scrivere nel forum
4 risposte