strings.cc
700 Bytes
// See www.openfst.org for extensive documentation on this weighted
// finite-state transducer library.
#include <cmath>
#include <string>
#include <fst/flags.h>
#include <fst/extensions/far/compile-strings.h>
#include <fstream>
DEFINE_string(far_field_separator, "\t",
"Set of characters used as a separator between printed fields");
namespace fst {
// Computes the minimal length required to encode each line number as a decimal
// number.
int KeySize(const char *filename) {
std::ifstream istrm(filename);
istrm.seekg(0);
string s;
int nline = 0;
while (getline(istrm, s)) ++nline;
istrm.seekg(0);
return nline ? ceil(log10(nline + 1)) : 1;
}
} // namespace fst