PDA

View Full Version : [C] Ciclo for+Salvataggio: indice nome.


salvodel
03-04-2008, 09:27
Salve a tutti avrei un piccolo problema da risolvere e non so quale strada percorrere. Il programma che ho scritto genera dei file che salvo con un nome prefissato.Adesso dovrei fare un ciclo for che mi cambi dei parametri e che automaticamente mi salvi i dati in diversi file con un nome diverso per ogni ciclo. Provo a buttare gių due righe per spiegarmi meglio:

vorrei questo risultato

#define filename "file000.dat"
....
....
for(i=1;i<124;i++)
{
...
...
salva();
}
Risultato
file001.dat
file002.dat
....
file123.dat

In questo momento non so che cosa fare, non so qual'č la soluzione pių veloce e pių snella per fare questo. Grazie per ogni consiglio.
Ciao

Volutomitra
03-04-2008, 09:32
Salve a tutti avrei un piccolo problema da risolvere e non so quale strada percorrere. Il programma che ho scritto genera dei file che salvo con un nome prefissato.Adesso dovrei fare un ciclo for che mi cambi dei parametri e che automaticamente mi salvi i dati in diversi file con un nome diverso per ogni ciclo. Provo a buttare gių due righe per spiegarmi meglio:

vorrei questo risultato

#define filename "file000.dat"
....
....
for(i=1;i<124;i++)
{
...
...
salva();
}
Risultato
file001.dat
file002.dat
....
file123.dat

In questo momento non so che cosa fare, non so qual'č la soluzione pių veloce e pių snella per fare questo. Grazie per ogni consiglio.
Ciao

Una printf?

cionci
03-04-2008, 09:59
Componi il nome del file con sprintf.
Ad esempio:

char filename[13];
int i;
for(i = 0; i < 1000; i++)
{
sprintf(filename, "file%03d.dat", i);
puts(filename);
}

salvodel
03-04-2008, 10:18
Componi il nome del file con sprintf.
Ad esempio:

char filename[13];
int i;
for(i = 0; i < 1000; i++)
{
sprintf(filename, "file%03d.dat", i);
puts(filename);
}


Grazie mille cionci...nel frattempo avevo trovato una soluzione che non funzionava con itoa, mi dava/tmp/cck6iP2d.o: In function `main':
prova.c:(.text+0x74): undefined reference to `itoa'
collect2: ld returned 1 exit status

con la tua va benissimo.
Grazie mille.

PS
leggendo meglio in http://www.cplusplus.com/reference/clibrary/cstdlib/itoa.html c'era scritto
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.

A standard-compliant alternative for some cases may be sprintf:

salvodel
03-04-2008, 10:20
allora..
"file000.dat" č una stringa...

alloca lo spazio necessario con malloc() per contenere questa stringa

...............

Grazie anche a te per la risposta.
Ciao