Zawiły fragment kodu
Ostatnio zmodyfikowano 2017-05-13 10:58
wld1337 Temat założony przez niniejszego użytkownika |
Zawiły fragment kodu » 2017-05-13 10:21:47 Witam, Mam nadzieje, że znajdzie się jakaś dobra dusza, która pomoże początkującemu w stawianiu jego pierwszych kroków. Mój problem wygląda następująco, dostałęm program do napisania - jednym z jego założeń jest to żeby dane wprowadzać jako argumenty programu w postaci zmienna = wartość, tak że powiedzmy wprowadzam argument n=100, co powoduje że mojej liczbie n przypisywana jest wartość 100. Dostałem coś takiego #include <iostream> #include <string> #include <sstream>
using namespace std;
bool is_prefixed( const string & a, const string & b ) { if( a.size() > b.size() ) { return a.substr( 0, b.size() ) == b; } else { return b.substr( 0, a.size() ) == a; } }
template < typename TYPE > void parse_argument( TYPE * const output, const string & arg, const int argc, char * const argv[] ) { for( int i = 1 ; i < argc; ++i ) { if( is_prefixed( argv[ i ], arg ) ) { if( argv[ i ][ arg.length() ] == '=' ) { istringstream ss(( argv[ i ] + arg.length() + 1 ) ); ss >> * output; } } } }
int main( int argc, char * argv[] ) { int n = 0; int k = 0; float p = 0; parse_argument( & n, "n", argc, argv ); parse_argument( & k, "k", argc, argv ); parse_argument( & p, "p", argc, argv ); cout << n << " " << k << " " << p << " " << endl; return 0; } I wszystko okej, działa. Tylko niestety nie rozumiem części kodu do main, czy ktoś byłby w stanie mi to jakoś wytłumaczyć?[/i] |
|
darko202 |
» 2017-05-13 10:58:18 |
|
« 1 » |