J'écris un morceau de code, en utilisant C++, j'aimerais éviter d'écraser et d'écrire divers fichiers tous les 1000 pas de temps. C'est dans une boucle temporelle:
fstream out("ux.odt");
for (auto &row: ux) {
for (auto col: row)
out << col << ',';
// cout << col <<',';
out << '\n';
Il me donne les résultats uniquement pour le dernier pas de temps. Comment puis-je obtenir des fichiers pour, disons, le pas de temps 1000, 2000, 3000 ?
Solution du problème
Essayons quelque chose comme ceci :
std::ofstream out;
static bool first_pass = true;
if (first_pass)
{
out.open("ux.odt");
first_pass = false;
}
if ((timestamp % 1000) == 0)
{
out.close();
std::ostringstream filename;
filename << "ux_" << timestamp << ".odt";
out.open(filename.str());
}
//... code to write to the file.
La première ligne crée une variable de flux pour l'écriture.
La deuxième ligne déclare une variable booléenne qui est initialisée au démarrage du programme à "true" pour indiquer une première passe ou non.
La première instruction "if", initialisera le nom du fichier de sortie à "ux.odt", lors du premier passage dans le code.
La deuxième if
instruction fermera le fichier existant et créera un nouveau fichier, tous les 1000 horodatages.
Aucun commentaire:
Enregistrer un commentaire