PDA

View Full Version : Scrittura su file


bodomTerror
19-01-2006, 10:37
Salve, mi servirebbe un aiutino x questo:

//Scrittura di una stringa in un file
#include <stdio.h>
#include <string.h>

main()
{
char *buf; //buffer
FILE *fp; //file pointer
int i, len;

//Legge da tastiera il nome del fornitore
for(i=0; i<4; i++)
{
printf("Inserisci un fornitore : ");
scanf("%s", buf);
}
len = strlen(buf);
fp = fopen("fornitori.txt", "a"); //crea il file fornitori

//Memorizza il nome del fornitore nel file
fwrite(buf, 1, len, fp);
fclose(fp);

fflush(stdin);
getchar();
}

dovrei inserire 4 nomi in un file andando a capo ad ogni nome, se qualcuno mi dice come si fa... :boh: grazie

andbin
19-01-2006, 10:50
Ciao, ci sono alcune cose che non vanno bene nel codice. Per cominciare, usi un puntatore buf che non è inizializzato. Se devi prendere una stringa in input puoi fare così:
char buf[41];

scanf ("%40s", buf);
In questo modo sei sicuro che il buffer esiste e che la scanf non andrà a "sforare" oltre i 40 caratteri. Ho messo 41 per il buffer perché il carattere nullo finale viene aggiunto in automatico dalla scanf.

Per scrivere una stringa, invece di usare la fwrite, puoi usare una fprintf o una fputs.
Poi, visto che devi prendere 4 stringhe e scrivere ognuna su file, ti conviene aprire il file prima del ciclo for e scrivere ogni stringa dall'interno del ciclo.

bodomTerror
19-01-2006, 14:41
Molto esauriente, grazie 1000 :D