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()); |
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_; |