Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - parsing da console linux
Forum - C/C++ - parsing da console linux

Avatar
jaco94++ (Normal User)
Expert


Messaggi: 203
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 20:39
Venerdì, 22/07/2011
Salve a tutti!
ho un problema con il programma che sto sviluppando, quando gli passo degli argomenti tipo:
pscn -h -p 192.168.1.245 10 20
ho bisogno di ottenere in una stringa l'indirizzo ip e nelle altre 2 le  porte di rete!
le opzioni -h -p non sono sempre necessarie.

Ho provato in questo modo:

Codice sorgente - presumibilmente C/C++

  1. bool idx=false;
  2. for(int i =1;i<argc;i++)
  3. {
  4.     cmp=argv[i];
  5.         if(cmp=="-p")
  6.         {
  7.             fl_op.print=true;
  8.         }
  9.         else if(cmp=="-h")
  10.         {
  11.  
  12.         }
  13.         else if(cmp=="--name")
  14.         {
  15.  
  16.         }
  17.  
  18.         if(atoi(cmp.c_str()))
  19.         {
  20.             if(idx==false)
  21.             {
  22.             fl_op.start=atoi(cmp.c_str());
  23.             idx=true;
  24.             }
  25.             else
  26.             {
  27.                 fl_op.end=atoi(cmp.c_str());
  28.             }        
  29.         }
  30.     }



da qui mi aspetto di ottenere dalla stringa -h -p 192.168.1.254 10 20
porta 1 = 10
porta 2 = 20

invece ottengo

porta 1 = 192
porta 2 = 20

come posso ottenere l'output desiderato ?
inoltre come posso riconoscere un indirizzo ip ?


PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 21:26
Venerdì, 22/07/2011
Codice sorgente - presumibilmente C/C++

  1. if(cmp=="-p")
  2.         {
  3.             fl_op.print=true;
  4.             continue;
  5.         }
  6.         else if(cmp=="-h")
  7.         {
  8.             continue;
  9.         }
  10.         else if(cmp=="--name")
  11.         {
  12.             continue;
  13.         }


Ultima modifica effettuata da nessuno il 22/07/2011 alle 21:27


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM