159 |
|
return false; |
160 |
|
} |
161 |
|
} |
162 |
< |
|
162 |
> |
|
163 |
> |
//Since libstdc++(GCC 3.2) has an i/ostream::operator>>/<<(streambuf*) bug (Bug 9318) |
164 |
> |
//Instead of using iostream facility, we use C library |
165 |
|
int StringTokenizer::nextTokenAsInt() { |
166 |
|
std::string token = nextToken(); |
167 |
< |
std::istringstream iss(token); |
168 |
< |
int result; |
167 |
< |
|
168 |
< |
if (iss >> result) { |
169 |
< |
return result; |
170 |
< |
} else { |
171 |
< |
std::cerr << "unable to convert " << token << " to an integer" << std::endl; |
172 |
< |
return 0; |
173 |
< |
} |
167 |
> |
|
168 |
> |
return atoi(token.c_str()); |
169 |
|
} |
170 |
|
|
171 |
|
float StringTokenizer::nextTokenAsFloat() { |
172 |
|
std::string token = nextToken(); |
173 |
< |
std::istringstream iss(token); |
174 |
< |
float result; |
180 |
< |
|
181 |
< |
if (iss >> result) { |
182 |
< |
return result; |
183 |
< |
} else { |
184 |
< |
std::cerr << "unable to convert " << token << " to a float" << std::endl; |
185 |
< |
return 0.0; |
186 |
< |
} |
173 |
> |
convertFortranNumber(token); |
174 |
> |
return (float) (atof(token.c_str())); |
175 |
|
} |
176 |
|
|
177 |
|
double StringTokenizer::nextTokenAsDouble() { |
178 |
|
std::string token = nextToken(); |
179 |
< |
std::istringstream iss(token); |
180 |
< |
double result; |
193 |
< |
|
194 |
< |
if (iss >> result) { |
195 |
< |
return result; |
196 |
< |
} else { |
197 |
< |
std::cerr << "unable to convert " << token << " to a double" << std::endl; |
198 |
< |
return 0.0; |
199 |
< |
} |
179 |
> |
convertFortranNumber(token); |
180 |
> |
return atof(token.c_str()); |
181 |
|
} |
182 |
|
|
183 |
|
std::string StringTokenizer::peekNextToken() { |
205 |
|
return result; |
206 |
|
} |
207 |
|
|
208 |
+ |
void StringTokenizer::convertFortranNumber(std::string& fortranNumber) { |
209 |
+ |
std::string::iterator i; |
210 |
+ |
for(i = fortranNumber.begin(); i != fortranNumber.end(); ++i) { |
211 |
+ |
if (*i == 'd' || *i == 'D') { |
212 |
+ |
*i = 'E'; |
213 |
+ |
} |
214 |
+ |
} |
215 |
+ |
} |
216 |
+ |
|
217 |
|
}//end namespace oopse |
218 |
|
|