Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
[C++] non trovo l'errore in una funzione
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
Crono
Semidio
Semidio


Registrato: 24/03/05 14:12
Messaggi: 224
Residenza: Trieste

MessaggioInviato: 18 Mag 2007 17:25    Oggetto: [C++] non trovo l'errore in una funzione Rispondi citando

Questa funzione legge da un file di testo la stringa in input s e la confronta con una sottostringa della stringa s1 che viene letta dal file ELENCO_IP.csv, il file contiene un elenco di stringe che possono essere di due tipi:

1) AAA;;xxx.xxx.xxx.xxx
2) AAA;BBB;xxx.xxx.xxx.xxx

fino a quando le stringhe lette dal file sono del tipo 1 va tutto bene ma se le stringhe sono del tipo 2 il programma termina immediatamente e non capisco perchè

Codice:
string IP(string s) {
 fstream file;
 string s1;
 file.open("ELENCO_IP.csv");
 while(!file.eof()) {
  file>>s1;
  //se AAA è uguale a s e se dopo il primo ; c'è un altro ; allora chiudi file e
  //restituisci la sottostringa xxx.xxx.xxx.xxx
  if(!s1.compare(0, s.size(), s) && s1[s.size()+1]==';')) {
   file.close();
   return s1.substr(s1.find_first_of(';', 0)+2, 15);
  }
 }
 file.close();
 return "";
}
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11566
Residenza: Tokelau

MessaggioInviato: 29 Mag 2007 10:37    Oggetto: Re: [C++] non trovo l'errore in una funzione Rispondi

questa parte
Codice:
if(!s1.compare(0, s.size(), s) && s1[s.size()+1]==';')) {
   file.close();
   return s1.substr(s1.find_first_of(';', 0)+2, 15);
}


è sbagliata. prova invece a fare il test nel seguente modo: concatena ad s il ; e dopo fai una compare con s1 ... dovrebbe andare.
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi