Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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...


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
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


Yep, I came back :P
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!


Yep, I came back :P
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...


Alex=)
PM Quote