stringstream >> assignment
eric
fsshl@att.net
Wed Jul 6 07:16:00 GMT 2011
Dear advanced g++ program:
I copied a simple template and streamstring code from book, c++
cookbook, at chapter 3 section 5.pg131: Parsing a string containing a
Number in Scientific Notation.
-----------------------------------------------------------
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
//double sciToDub(const string& str) {
template<typename T>
T strToNum(const string& str) {
stringstream ss(str);
T tmp;
ss >> tmp;
// double d = 0;
// ss >> d;
if (ss.fail()){
string s = "Unable to format ";
s += str;
s += " as a number!";
throw(s);
}
return(tmp);
}
int main() {
try {
/*
cout << sciToDub("1.23456789e5") << endl;
cout << sciToDub("6.02987654e-5") << endl;
cout << sciToDub("asdf") << endl;
*/
double d = strToNum<double>("7.0"); cout << d << endl;
float f = strToNum<float>("7.0"); cout << f << endl;
int i = strToNum<int>("7.0"); cout << i << endl;
char c = strToNum<char>("7.0"); cout << c << endl;
}
catch (string& e) {
cerr << "Whoops: " << e << endl;
}
}
------------------------------------------------
my test result is all 4 output is 7
why is that, especially first two, double and float?
thanks your help a lot in advance, Eric
More information about the Gcc-help
mailing list