Rev | Line | |
---|
[35] | 1 | // -*- C++ -*-
|
---|
| 2 | //
|
---|
| 3 | // $Id
|
---|
| 4 |
|
---|
| 5 | #include<cmath>
|
---|
| 6 |
|
---|
| 7 | #if !defined(__format_h__)
|
---|
| 8 | #define __format_h__
|
---|
| 9 |
|
---|
| 10 | #if !defined(u_char)
|
---|
| 11 | #define u_char unsigned char
|
---|
| 12 | #endif
|
---|
| 13 |
|
---|
| 14 | #if !defined(u_int)
|
---|
| 15 | #define u_int unsigned int
|
---|
| 16 | #endif
|
---|
| 17 |
|
---|
| 18 | #if !defined(__GNUC__)
|
---|
| 19 | double rint(double val);
|
---|
| 20 | #endif
|
---|
| 21 |
|
---|
| 22 | #include <cstdio>
|
---|
| 23 | #include <cstdarg>
|
---|
| 24 | #include <string>
|
---|
| 25 |
|
---|
| 26 | using namespace std;
|
---|
| 27 |
|
---|
| 28 | //
|
---|
| 29 | // string format(const char * form , ... );
|
---|
| 30 | //
|
---|
| 31 | // Purpose:
|
---|
| 32 | // To generate fprintf-like formatted strings
|
---|
| 33 | //
|
---|
| 34 | #if defined(__GNUC__)
|
---|
| 35 | static inline
|
---|
| 36 | string format(const char * form , ... ) __attribute__ ((format (printf, 1, 2)));
|
---|
| 37 | #endif
|
---|
| 38 |
|
---|
| 39 | static inline
|
---|
| 40 | string format(const char * form , ... ) {
|
---|
| 41 | const int myBUFF_SIZE = 1024;
|
---|
| 42 | char most2long1s2short[myBUFF_SIZE];
|
---|
| 43 | va_list ap;
|
---|
| 44 | va_start(ap,form);
|
---|
| 45 | #if defined(__GNUC__)
|
---|
| 46 | // have vsnprintf
|
---|
| 47 | if(vsnprintf(most2long1s2short,myBUFF_SIZE,form,ap) == -1)
|
---|
| 48 | most2long1s2short[myBUFF_SIZE] =0x00;
|
---|
| 49 | return string(most2long1s2short);
|
---|
| 50 | #else
|
---|
| 51 | most2long1s2short[myBUFF_SIZE] =0x00;
|
---|
| 52 | vsprintf(most2long1s2short,form,ap);
|
---|
| 53 | return string(most2long1s2short);
|
---|
| 54 | #endif
|
---|
| 55 | }
|
---|
| 56 |
|
---|
| 57 | #endif
|
---|
Note:
See
TracBrowser
for help on using the repository browser.