diff options
Diffstat (limited to 'src/utils.cc')
-rw-r--r-- | src/utils.cc | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/utils.cc b/src/utils.cc index 746c599..01a6b15 100644 --- a/src/utils.cc +++ b/src/utils.cc @@ -1,6 +1,8 @@ #include <stdio.h> #include <string.h> #include <math.h> +#include <string> +#include <iostream> #include "cctk.h" #include "cctk_Arguments.h" @@ -9,19 +11,19 @@ #include "utils.hh" #include "integrate.hh" +using namespace std; + //////////////////////////////////////////////////////////////////////// // File manipulation //////////////////////////////////////////////////////////////////////// -FILE *Multipole_OpenOutputFile(CCTK_ARGUMENTS, char const *name) +FILE *Multipole_OpenOutputFile(CCTK_ARGUMENTS, const string &name) { DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; - const int buf_size = 1024; bool first_time = cctk_iteration == 0; const char *mode = first_time ? "w" : "a"; - char output_name[buf_size]; CCTK_STRING *out_dir = (CCTK_STRING *) CCTK_ParameterGet("out_dir", "IOUtil", NULL); if (*out_dir == 0) @@ -30,19 +32,13 @@ FILE *Multipole_OpenOutputFile(CCTK_ARGUMENTS, char const *name) return 0; } - if ((int)strlen(*out_dir)+1 > buf_size) - { - CCTK_WARN(1,"Parameter IOUtil::out_dir is too long"); - return 0; - } - - sprintf(output_name, "%s/%s", *out_dir, name); + string output_name(string(*out_dir) + "/" + name); - FILE *fp = fopen(output_name, mode); + FILE *fp = fopen(output_name.c_str(), mode); if (fp == 0) { - CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, "Could not open output file %s", output_name); + CCTK_VWarn(1, __LINE__, __FILE__, CCTK_THORNSTRING, (string("Could not open output file ") + output_name).c_str()); } return fp; @@ -72,7 +68,7 @@ void Multipole_OutputArray(CCTK_ARGUMENTS, FILE *f, int array_size, } -void Multipole_OutputArrayToFile(CCTK_ARGUMENTS, char *name, int array_size, +void Multipole_OutputArrayToFile(CCTK_ARGUMENTS, const string &name, int array_size, CCTK_REAL const th[], CCTK_REAL const ph[], CCTK_REAL const xs[], CCTK_REAL const ys[], CCTK_REAL const zs[], CCTK_REAL const data[]) @@ -90,7 +86,7 @@ void Multipole_OutputArrayToFile(CCTK_ARGUMENTS, char *name, int array_size, // Misc //////////////////////////////////////////////////////////////////////// -void Multipole_Output1D(CCTK_ARGUMENTS, char const *name, int array_size, +void Multipole_Output1D(CCTK_ARGUMENTS, const string &name, int array_size, CCTK_REAL const th[], CCTK_REAL const ph[], mp_coord coord, CCTK_REAL const data[]) { @@ -133,7 +129,7 @@ void Multipole_OutputComplex(CCTK_ARGUMENTS, FILE *fp, CCTK_REAL redata, CCTK_RE fprintf(fp, "%f %.19g %.19g\n", cctk_time, redata, imdata); } -void Multipole_OutputComplexToFile(CCTK_ARGUMENTS, char const *name, CCTK_REAL redata, CCTK_REAL imdata) +void Multipole_OutputComplexToFile(CCTK_ARGUMENTS, const string &name, CCTK_REAL redata, CCTK_REAL imdata) { DECLARE_CCTK_ARGUMENTS; |