_line = 1;
}
-const char *Trace::peek_string(char *buf, const char *prefix)
+const char *Trace::peek_string(string &buf, const char *prefix)
{
//if (prefix) cout << "prefix '" << prefix << "' line '" << line << "'" << std::endl;
if (prefix &&
strstr(line.c_str(), "/prefix") == line.c_str()) {
- strcpy(buf, prefix);
- strcpy(buf + strlen(prefix),
- line.c_str() + strlen("/prefix"));
+ buf.clear();
+ buf.append(prefix);
+ buf.append(line.c_str() + strlen("/prefix"));
} else {
- strcpy(buf, line.c_str());
+ buf = line;
}
- return buf;
+ return buf.c_str();
}
-const char *Trace::get_string(char *buf, const char *prefix)
+const char *Trace::get_string(string &buf, const char *prefix)
{
peek_string(buf, prefix);
getline(*fs, line);
//cout << "next line is " << line << std::endl;
- return buf;
+ return buf.c_str();
}
void start();
- const char *peek_string(char *buf, const char *prefix);
- const char *get_string(char *buf, const char *prefix);
+ const char *peek_string(string &buf, const char *prefix);
+ const char *get_string(string &buf, const char *prefix);
int64_t get_int() {
- char buf[20];
+ string buf;
return atoll(get_string(buf, 0));
}
bool end() {