DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world
Convert String-Type The C++-Way
A very useful snipped that converts strings to/from various types.
Here's the header:
#include <string>
#include <iostream>
#include <vector>
#include <sstream>
#include <iomanip>
using namespace std;
#ifndef ST_STRING
#define ST_STRING
enum CONVTYPE { STRTOINT, STRTOFLOAT, INTTOSTR, STRTODOUBLE };
/*
* Convtype converts an integer to a string and a string
* string to an integer, a float, or a double. The third argument
* of this method determines what to do:
* STRTOINT, STRTOFLOAT, INTTOSTR, and STRTODOUBLE.
*
*/
void convtype(void*, void*, const int& );
#endif
The appropiate implementation:
void convtype(void* inp, void* out, const int& convtype)
{
istringstream isbuf;
ostringstream osbuf;
switch(convtype)
{
case STRTOINT:
isbuf.str(*(string*) inp);
isbuf >> *((int*) out);
break;
case STRTOFLOAT:
isbuf.str(*(string*) inp);
isbuf >> *((float*) out);
break;
case STRTODOUBLE:
isbuf.str(*(string*) inp);
isbuf >> *((double*) out);
break;
case INTTOSTR:
osbuf << *((int*) inp);
*((string*)out)=osbuf.str();
break;
}
return;
}





