GOOGLE ADS

mardi 3 mai 2022

Écrasement dans CPP

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 ifinstruction fermera le fichier existant et créera un nouveau fichier, tous les 1000 horodatages.

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique&nbsp;?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...