Precedente :: Successivo |
Autore |
Messaggio |
Crono Semidio
Registrato: 24/03/05 14:12 Messaggi: 224 Residenza: Trieste
|
Inviato: 18 Mag 2007 17:25 Oggetto: [C++] non trovo l'errore in una funzione |
|
|
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 |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11568 Residenza: Tokelau
|
Inviato: 29 Mag 2007 10:37 Oggetto: Re: [C++] non trovo l'errore in una funzione |
|
|
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 |
|
|
|
|
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
|
|