Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Come dare nomenclatura sequenziale ad un file?
Forum - C/C++ - Come dare nomenclatura sequenziale ad un file?

Avatar
darkingthereturn (Normal User)
Newbie


Messaggi: 6
Iscritto: 15/04/2011

Segnala al moderatore
Postato alle 16:22
Venerdì, 15/04/2011
Un programma, tramite fopen (), da nome al file pippo-1.txt
fopen richiede come parametro una stringa o il path del file in cui bisogna leggere/scrivere.
Se do ad fopen una stringa pre-filled (da codice) con "pippo-1.txt", in che modo potrei modificare in un ciclo la stringa affinchè avanzi da solo con pippo-2, pippo-3 ecc ecc?
Grazie :)

edit: il primo approccio che mi viene in mente è concatenare con strcat () un intero alla stringa in un ciclo in cui viene incrementato tale valore, che ne pensate?

Ultima modifica effettuata da darkingthereturn il 15/04/2011 alle 16:42
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 17:12
Venerdì, 15/04/2011
non è che ci siano moltissimi altri modi per farlo...

PM Quote
Avatar
darkingthereturn (Normal User)
Newbie


Messaggi: 6
Iscritto: 15/04/2011

Segnala al moderatore
Postato alle 18:19
Venerdì, 15/04/2011
Non sapevo se ci fosse un approccio migliore! Quindi l'ideale sarebbe avere 2 stringhe.

stringa a: fissa
stringa b: autoincrementa ad ogni ciclo

con strcat concateno b ad a ad ogni ciclo, giusto?

PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 20:16
Venerdì, 15/04/2011
giusto, ad ogni ciclo, prima di concatenare e incrementare devi usare la funzione atoi

Ultima modifica effettuata da Pitagora il 15/04/2011 alle 20:16
PM Quote
Avatar
darkingthereturn (Normal User)
Newbie


Messaggi: 6
Iscritto: 15/04/2011

Segnala al moderatore
Postato alle 22:25
Venerdì, 15/04/2011
ecco, infatti c'era qualcosa che non andava!
Infatti gli argomenti di strcat (char *st1, const char *st2) sono stringhe di caratteri e, giustamente, il compilatore si arrabbiava quando provavo ad "incrementare" il valore contenuto in st2 :D

Grazie Pitagora :)

edit: o meglio, mi serve atoi per incrementare, itoa per rimetterlo nella stringa :)

Ultima modifica effettuata da darkingthereturn il 16/04/2011 alle 2:05
PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 14:01
Sabato, 16/04/2011
Testo quotato

Postato originariamente da darkingthereturn:
mi serve atoi per incrementare, itoa per rimetterlo nella stringa :)



Esatto!

PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 20:32
Sabato, 16/04/2011
puoi usare un modo molto più semplice facendo uso della sprintf, che ti "stampa" su una stringa quello che vuoi..un esempio molto semplice:

Codice sorgente - presumibilmente C/C++

  1. char path[64];
  2. FILE *pippo;
  3. for(i=0;i<50;i++){
  4.     sprintf(path,"pippo-%d.txt",i);
  5.     pippo=fopen(path,"w");
  6.     /*fai quello che devi fare*/
  7.     fclose(pippo);
  8. }


questo secondo me è il sistema più comodo e semplice...

PM Quote