home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2002 May / Game.EXE_05_2002.iso / Alawar / Lib / Converter.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2002-03-31  |  1.3 KB  |  62 lines

  1. #include "Converter.h"
  2. #include <stdio.h>
  3.  
  4. static char buffer[256];
  5.  
  6. template<typename T>
  7. static const char * pri(const char * format, T val )
  8. {
  9.     sprintf( buffer, format, val );
  10.     return buffer;
  11. }
  12.  
  13. const char * Converter::convert( bool number )
  14. {
  15.     //MAX: ne uveren chto tak
  16.     return pri( "%d", number );
  17. }
  18.  
  19. const char * Converter::convert( int number )
  20. {
  21.     return pri( "%d", number );
  22. }
  23.  
  24. const char * Converter::convert( unsigned number )
  25. {
  26.     return pri( "%d", number );
  27. }
  28.  
  29. const char * Converter::convert( float number )
  30. {
  31.     return pri( "%f", number );
  32. }
  33.  
  34. const char * Converter::convert( double number )
  35. {
  36.     return pri( "%lf", number );
  37. }
  38.  
  39. bool Converter::convert( const char * stt, bool * number )
  40. {
  41.     int temp_val(0);
  42.     bool ok = sscanf( stt, "%d", &temp_val ) == 1;
  43.     *number = !!temp_val;//or (temp_val != 0);
  44.     return ok;
  45. }
  46. bool Converter::convert( const char * stt, int * number )
  47. {
  48.     return sscanf( stt, "%d", number ) == 1;
  49. }
  50. bool Converter::convert( const char * stt, unsigned * number )
  51. {
  52.     return sscanf( stt, "%d", number ) == 1;
  53. }
  54. bool Converter::convert( const char * stt, float * number )
  55. {
  56.     return sscanf( stt, "%f", number ) == 1;
  57. }
  58. bool Converter::convert( const char * stt, double * number )
  59. {
  60.     return sscanf( stt, "%lf", number ) == 1;
  61. }
  62.