Changeset 659 for code/branches/FICN/src/misc
- Timestamp:
- Dec 20, 2007, 4:10:08 PM (17 years ago)
- Location:
- code/branches/FICN/src/misc
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/FICN/src/misc/String2Number.h
r592 r659 9 9 10 10 /** 11 * String to number conversion 12 * 13 * This class converts a number inside a std::string 14 * into a numeric type number (int,float,double) 15 * Number in string can be decimal, hexadecimal or octal 16 * 17 * @author Nicolas Perrenoud<nicolape@ee.ethz.ch> 18 * 19 * @example 20 * float f; 21 * String2Number<float>(f, std::string(" 123.45 ")); 22 */ 11 * String to number conversion 12 * 13 * This class converts a number inside a std::string 14 * into a numeric type number (int,float,double) 15 * Number in string can be decimal, hexadecimal or octal 16 * 17 * @author Nicolas Perrenoud<nicolape@ee.ethz.ch> 18 * 19 * @example 20 * float f; 21 * String2Number<float>(f, std::string(" 123.45 ")); 22 */ 23 23 24 template <class T> 24 25 class String2Number 25 26 { 26 private: 27 bool success_; 28 public: 29 /** 30 * Constructor 31 * 32 * First value is the target variable, the second vector is the 33 * string where the number is taken from, the third parameter 34 * should be one of std::hex, std::dec or std::oct (dec is default value) 35 */ 36 inline String2Number(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&) = std::dec, int haltOnError=1) 37 { 38 std::istringstream iss(s); 39 success_ = !(iss >> f >> t).fail(); 27 private: 28 bool success_; 40 29 41 if (!success_ && haltOnError==1) 42 { 43 COUT(1) << "Error: Conversion from string to number in \"" << s << "\" failed." << std::endl; 44 exit(1); 45 } 46 } 30 public: 31 /** 32 * Constructor 33 * 34 * First value is the target variable, the second vector is the 35 * string where the number is taken from, the third parameter 36 * should be one of std::hex, std::dec or std::oct (dec is default value) 37 */ 38 inline String2Number(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&) = std::dec, int haltOnError=1) 39 { 40 std::istringstream iss(s); 41 success_ = !(iss >> f >> t).fail(); 42 43 if (!success_ && haltOnError==1) 44 { 45 COUT(1) << "Error: Conversion from string to number in \"" << s << "\" failed." << std::endl; 46 exit(1); 47 } 48 } 47 49 }; 48 50 -
code/branches/FICN/src/misc/Tokenizer.h
r612 r659 6 6 7 7 /** 8 * String tokenizer9 *10 * Splits a given string into several smaller strings11 * using a delmiter (default is the comma).12 * Returns the result as a vector<string> object13 *14 * @author Nicolas Perrenoud<nicolape@ee.ethz.ch>15 */8 * String tokenizer 9 * 10 * Splits a given string into several smaller strings 11 * using a delmiter (default is the comma). 12 * Returns the result as a vector<string> object 13 * 14 * @author Nicolas Perrenoud<nicolape@ee.ethz.ch> 15 */ 16 16 17 17 inline std::vector<std::string> tokenize(const std::string& str, const std::string& delimiters = ",")
Note: See TracChangeset
for help on using the changeset viewer.