Esempio n. 1
0
 const char * operator() (const char * str, size_t sz)
 {
   if (conv) {
     buf.clear();
     conv->convert(str, sz, buf, buf0);
     return buf.str();
   } else {
     return str;
   }
 }
Esempio n. 2
0
 const char * operator() (ParmStr str)
 {
   if (conv) {
     buf.clear();
     conv->convert(str, -1, buf, buf0);
     return buf.mstr();
   } else {
     return str;
   }
 }
Esempio n. 3
0
 char * operator() (char c)
 {
   buf.clear();
   if (conv) {
     char str[2] = {c, 0};
     conv->convert(str, 1, buf, buf0);
   } else {
     buf.append(c);
   }
   return buf.mstr();
 }
int main (int argc, char* argv[])
{
    if (argc != 4) {
        error("usage: %s number base1 base2", argv[0]);
        return 1;
    }
    std::string str(argv[1]);
    int base1 = std::stoi(std::string(argv[2]));
    int base2 = std::stoi(std::string(argv[3]));
    Convert convert;
    try {
        std::string res;
        res = convert.convert(str, base1, base2);
        std::cout << str << " in base " << base2 << " is " << res << std::endl;
    } catch(const std::invalid_argument& ia) {
        error("%s", ia.what());
        return 1;
    }
    return 0;
}