[C++] Autonummering files

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo iedereen,

Ik ben bezig met een programma te programmeren, nu ben ik op een probleem gestoten wat ik maar niet vindt op google en het kan ook zijn dat het uberhaupt niet kan. Ik wil namelijk als ik een file aanmaak dat de bestandnaam genummerd word. Dit is een stuktje uit mijn code:

code:
1
2
3
4
5
6
7
fstream raceFile
int i;

for(i=0;i<3;i++)
{
raceFile.open("raceFile.dat",Ios::out);   //file wordt aangemaakt
}


Zonder de loop werkt dit maar ik zou graag hebben dat er driemaal raceFile.dat wordt aangemaakt maar dan met de i er in verwerkt. (raceFile0,raceFile1,raceFile2)

Is dit mogelijk?

Alvast bedankt

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 21-09 10:43

Matis

Rubber Rocket

Met behulp van sprintf zou je binnen de loop een unieke bestandsnaam kunnen maken en die bestandsnaam op zijn beurt weer gebruiken in
raceFile.open()-functie.
Je zult hiervoor wel een hulpvariabele nodig hebben om de bestandsnaam tijdelijk vast te kunnen houden.

Edit; op het forum van cplusplus kwam iets equivalents tegen namelijk iemand die als bestandsnaam de huidige datum wil gebruiken: How to write the filename with date and time as Filename
Misschien kun je daar het een en ander van afleiden.

[ Voor 30% gewijzigd door Matis op 29-01-2011 12:48 ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:43
In C++ wordt doorgaans std::stringstream gebruikt om strings te bouwen:
C++:
1
2
3
4
5
6
7
8
9
#include <string>
#include <sstream>

std::string bestandsnaam(int i)
{
    std::ostringstream oss;
    oss << "bestand" << i << ".dat";
    return oss.str();
}