ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-3.0/src/utils/StringTokenizer.cpp
(Generate patch)

Comparing branches/new_design/OOPSE-3.0/src/utils/StringTokenizer.cpp (file contents):
Revision 1737 by tim, Fri Nov 12 22:44:03 2004 UTC vs.
Revision 1758 by tim, Fri Nov 19 17:56:32 2004 UTC

# Line 101 | Line 101 | std::string StringTokenizer::nextToken() {
101   }
102  
103   std::string StringTokenizer::nextToken() {
104 <    string result;
104 >    std::string result;
105      
106      if(currentPos_ != end_) {
107          std::insert_iterator<string> insertIter(result, result.begin());
# Line 125 | Line 125 | int StringTokenizer::nextTokenAsInt() {
125      return result;
126   }
127  
128 + bool StringTokenizer::nextTokenAsBool() {
129 +    std::string token = nextToken();
130 +    std::istringstream iss(token);
131 +    bool result;
132 +    
133 +    if (iss >> result) {
134 +        return result;
135 +    } else {
136 +        std::err << "unable to convert " << token << "to a bool" << std::endl;
137 +        return false;
138 +    }
139 + }
140 +
141   int StringTokenizer::nextTokenAsInt() {
142 <    return atoi(nextToken().c_str());
142 >    std::string token = nextToken();
143 >    std::istringstream iss(token);
144 >    int result;
145 >    
146 >    if (iss >> result) {
147 >        return result;
148 >    } else {
149 >        std::err << "unable to convert " << token << "to an integer" << std::endl;
150 >        return 0;
151 >    }
152   }
153  
154   float StringTokenizer::nextTokenAsFloat() {
155 <    return atof(nextToken().c_str());
155 >    std::string token = nextToken();
156 >    std::istringstream iss(token);
157 >    float result;
158 >    
159 >    if (iss >> result) {
160 >        return result;
161 >    } else {
162 >        std::err << "unable to convert " << token << "to a float" << std::endl;
163 >        return 0.0;
164 >    }
165   }
166  
167 + double StringTokenizer::nextTokenAsDouble() {
168 +    std::string token = nextToken();
169 +    std::istringstream iss(token);
170 +    double result;
171 +    
172 +    if (iss >> result) {
173 +        return result;
174 +    } else {
175 +        std::err << "unable to convert " << token << "to a double" << std::endl;
176 +        return 0.0;
177 +    }
178 + }
179 +
180   std::string  StringTokenizer::peekNextToken() {
181      string result;
182      std::string::const_iterator tmpIter = currentPos_;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines