codice:
int main (int argc, char *argv[]) {
FILE *a=fopen("ritardi.txt","r");
FILE *b=fopen("quartinescelte.txt","w");
char buf[1024];
while( fgets(buf,1024,a)) if(strstr(buf," colpirimanenti: 0") != NULL || strstr(buf," colpirimanenti: 1 ") != NULL || strstr(buf," colpirimanenti: 2 ") != NULL || strstr(buf," colpirimanenti: 3 ") != NULL ) fputs(buf,b);
getchar();
fclose(a);fclose(b);
return 0;
}
il controllo funziona solo per colpirimanenti: 0
Per gli altri lo spazio dopo il valore non viene rilevato... nelle righe del tipo:
presenze:81°***combinazione:14,15,30,38***rs: 248 ra: 88 colpirimanenti: 160
presenze:70°***combinazione:14,15,30,39***rs: 222 ra: 222 colpirimanenti: 2
presenze:87°***combinazione:14,15,30,40***rs: 183 ra: 180 colpirimanenti: 3
e quindi ad esempio la riga
presenze:87°***combinazione:14,15,30,40***rs: 183 ra: 180 colpirimanenti: 3
non viene considerata...
Ho provato a mettere caratteri di spazio o tabulatura tipo: \n\t\s
codice:
while( fgets(buf,1024,a)) if(strstr(buf," colpirimanenti: 0") != NULL || strstr(buf," colpirimanenti: 1\n ") != NULL || strstr(buf," colpirimanenti: 2\n ") != NULL || strstr(buf," colpirimanenti: 3\n ") != NULL ) fputs(buf,b);
ma nulla...
se invece rimuovo lo spazio dopo il valore colpirimanenti cercato... il controllo avviene ma non è ottimale... in quanto vengono considerati uguali... ad esempio... sia la riga
presenze:87°***combinazione:14,15,30,40***rs: 183 ra: 180 colpirimanenti: 3 (ricercata)
che la riga...
presenze:74°***combinazione:14,15,82,2***rs: 415 ra: 87 colpirimanenti: 328 (da non considerare)
in quanto il programma rileva in entrambi il valore 3...
Grazie per il vostro eventuale aiuto