PDA

View Full Version : Gestione di un file .txt con un programma in C


Madchemist
23-02-2008, 09:33
Buongiorno.
Come posso gestire un file .txt attraverso un programma in C?
Mi spiego meglio, vorrei un programma che eseguisse queste operazioni in modo ciclico...

-Chiedere l'inserimento di un testo...
-Cancellare il testo contenuto in un file .txt...
-Salvare quel testo nel file .txt...
-Chiedere l'inserimento di un testo...
-Cancellare il testo contenuto in un file .txt...
-Salvare quel testo nel file .txt...
-...
-......


Come si potrebbe fare?
Quali sono le funzioni che devo utilizzare e quali librerie mi servono?

$te
23-02-2008, 10:03
aprire un file:

FILE*file;

char leggi[50];

file=fopen("file.txt", "r") -> r: leggi, a: scrivi, w: cancelli il contenuto e scrivi.

fgets(leggi, sizeof(leggi), file); prendi una stringa dal file

fprintf(file, "%s", leggi); scrivere nel file

fclose(file); chiudere il file

Madchemist
23-02-2008, 11:55
grazie.
Le librerie?

Madchemist
23-02-2008, 12:13
Non č che riuscite a crearmi un mini-programmino funzionante?
Deve solo chiedere di inserire un testo e salvarlo in un file .txt, successivamente cancellare il file e scrivere il testo sul file per tornare a chiedere il testo e per poi riscriverlo e cosė all'infinito...

kawasaidleon
23-02-2008, 13:45
mmm non e' che non si potrebbe richiedere la soluzione intesa come programma finale?
cmq ti do due funzioni che possono servirti

void scrivi_file (char* dove, char* cosa, char* modo)
{
FILE* f = fopen(dove, modo);
if (!f)
f = fopen (dove, "w");
fprintf(f, "%s\n", cosa);
fflush(f);
fclose(f);
}

in dove ci va il percorso del file (compreso il nome del file di testo), in cosa la stringa che vuoi scrivere (magari puoi usare sprintf per creartela
sprintf(stringa_finale, "%s qualche altra stringa %s o un numero %d, stringa1, stringa2, intero);
) e modo lo usi o come "w" o append "a" che accoda al file quello che metti in 'cosa'.
e
void leggi_file (char* dove)
{
FILE* f = fopen(dove, "r");
if (!f)
{
f = fopen (dove, "w");
fflush(f);
fclose(f);
return;
}
char stringa[256];
while (fgets(stringa, 256, f))
printf("%s", stringa); //modifica questa per avere la stringa letta in altro modo
fflush(f);
fclose(f);
}

che lo usi per leggere

Madchemist
23-02-2008, 17:16
Tutt'ok, grazie!

cionci
24-02-2008, 11:46
Thread chiuso
|
V