From e9d03da8e00c60481fc350c34d9ab48e790d6cf8 Mon Sep 17 00:00:00 2001 From: Andrei Date: Wed, 23 Oct 2019 20:08:38 +0300 Subject: [PATCH] output_csv.h --- output_csv.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 output_csv.h diff --git a/output_csv.h b/output_csv.h new file mode 100644 index 0000000..2ff65fd --- /dev/null +++ b/output_csv.h @@ -0,0 +1,39 @@ +/* +* @file output_csv.h +* +* Output data to .CSV file +* +* @date Oct 06, 2019 +* @author andreika, (c) 2019 +*/ + +#pragma once + +// Use variadic templates for output + +static std::ofstream csvfp; +static const char *csvfname = nullptr; + +template +static void output_csv(const char *fname, T arg) { + if (fname == nullptr) + csvfp << ";"; + csvfp << arg; + //if (fname != nullptr) + // csvfp << std::endl; +} + +template +static void output_csv(const char *fname, T v, Args... args) { + if (fname != csvfname && fname != nullptr) { + csvfp.close(); + csvfp.open(fname); + csvfname = fname; + } + output_csv(fname, v); + output_csv(nullptr, args...); + if (fname != nullptr) + csvfp << std::endl; +} + +