my input following:
4 5i 6 7i
instead of finding , replacing string,
i store individual values in double
but peeking , ignoring 'i'
so
double = 4 , b = 5, c = 6 , d = 7
following ugly code working on
i lost, appreciated
thanks!
char c, real[1024], img[1024]; int = 0; bool flag = false, flag2 = false; while( c = input.get() ) { if( input.peek() == ' '){ = 0; flag2 = true; } if( !flag2 ){ real[ i++ ] = c; }else{ img[ i++ ] = c; } if( flag ) { break; } while( input.peek() == 'i' ) { if( input.peek() == 'i' ) { flag = true; = 0; flag2 = true; }if( input.peek() == ' ' ) { = 0; flag2 = true; } input.ignore(1, 'i'); } } if( flag ){ obj.doublevaluea = 0.0 ; obj.doublevalueb = atof( real ); return input; }else{ obj.doublevaluea = atof( real ); obj.doublevalueb = atof( img ); } return input; // enables cin >> >> b >> c
#include<iostream> #include<vector> #include<sstream> #include<ctype> #include<string> using namespace std; int parsenumber( string number ) { unsigned = 0; // find position character starts while ( < number.size() && isdigit( number[i] ) { i++; } number = number.substr( 0, ); // retrieve number string using stringstream stringstream ss( number ); int result; ss >> result; // return result return result; } int main() { string input; getline( cin, input ); stringstream ss( input ); string number; vector<int> complexnumbers; while ( ss >> number ) { complexnumbers.push_back( parsenumber( number ) ); } ( unsigned = 0; < complexnumbers.size(); i++ ) { cout << complexnumbers[i] << " "; } }
Comments
Post a Comment