5 #define __STDC_FORMAT_MACROS // Need this for PRId64
14 bool ReadInputLine(FILE *fi, std::string &line);
15 void SplitLine(
const std::string &line, std::vector<std::string> &args,
const std::string &separatorChars =
" \t",
16 const std::string "eChars =
"\"'",
const std::string &commentStartChars =
"#",
17 bool ignoreZeroLengthFields =
true);
19 std::string createFullPath(
const std::string &dir,
const std::string &file);
21 void abortWithMessage(
const std::string &msg);
23 bool parseAsInt(
const std::string &str,
int &number);
24 bool parseAsInt(
const std::string &str, int64_t &number);
25 bool parseAsDouble(
const std::string &str,
double &number);
26 bool parseAsDoubleVector(
const std::string &str, std::vector<double> &numbers, std::string &badField);
27 std::string doubleToString(
double x);
28 std::string intToString(
int x);
29 std::string intToString(int64_t x);
30 std::string stringToString(
const std::string &str);
32 std::string trim(
const std::string &str,
const std::string &trimChars =
" \t\r\n");
33 std::string replace(
const std::string &input,
const std::string &target,
const std::string &replacement);
35 std::string strprintf_cstr(
const char *format, ...);
37 #define strprintf(format, ...) strprintf_cstr(stringToString(format).c_str(), __VA_ARGS__ )
44 inline std::string strprintf_cstr(
const char *format, ...)
46 const int MAXBUFLEN = 8192;
47 char buf[MAXBUFLEN+1];
52 vsnprintf(buf, MAXBUFLEN, format, ap);
54 vsnprintf_s(buf, MAXBUFLEN, _TRUNCATE, format, ap);
59 return std::string(buf);
62 inline std::string doubleToString(
double x)
64 std::string s = strprintf(
"%.15g", x);
72 inline std::string intToString(
int x)
74 return strprintf(
"%d", x);
77 inline std::string intToString(int64_t x)
79 return strprintf(
"%" PRId64, x);
82 inline std::string stringToString(
const std::string &str)