A parte il filtro sul newline direi che questo funziona
Codice PHP:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(void){
char mio_buf[100];
char* tmp_string[10];
char* prr[10];
FILE *file_in_ptr;
int index;
double val;
if((file_in_ptr=fopen("infile.txt","r"))==NULL)exit(1);
while(fgets(mio_buf, 100, file_in_ptr)){
index=0;
if(mio_buf[0]!='\n'){
tmp_string[index]=strtok(mio_buf, " ");
printf("token: %s: ", tmp_string[index]);
//stampa il primo token della riga
//di sicuro è un numero
val=atof(tmp_string[index])+0.1;
printf("double + 0.1 = %.2f\n", val);
while((tmp_string[index++]=strtok(NULL, " "))!=NULL) {
printf("TOKEN: %s: ", tmp_string[index-1]);
if(tmp_string[index-1][0]=='-')
printf("sottrazione\n");
else if(tmp_string[index-1][0]=='+')
printf("addizione\n");
else if(tmp_string[index-1][0]=='*')
printf("moltiplicazione\n");
else if(tmp_string[index-1][0]=='/')
printf("divisione\n");
else {
val=atof(tmp_string[index-1])+0.1;
printf("double + 0.1 = %.2f\n", val);
}
}
//stampa il resto
}
}
fclose(file_in_ptr);
printf("\n");
system("PAUSE");
return 0;
}
Codice PHP:
$ ./prova
token: 621.4: double + 0.1 = 621.50
TOKEN: 2: double + 0.1 = 2.10
TOKEN: +: addizione
TOKEN: 6.12: double + 0.1 = 6.22
TOKEN: +: addizione
TOKEN: 12: double + 0.1 = 12.10
TOKEN: -
: sottrazione
token: 19: double + 0.1 = 19.10
TOKEN: 2: double + 0.1 = 2.10
TOKEN: +: addizione
TOKEN: 9: double + 0.1 = 9.10
TOKEN: +: addizione
TOKEN: 15: double + 0.1 = 15.10
TOKEN: -
: sottrazione
token: 14: double + 0.1 = 14.10
TOKEN: 488: double + 0.1 = 488.10
TOKEN: +: addizione
TOKEN: 6: double + 0.1 = 6.10
TOKEN: +: addizione
TOKEN: 10: double + 0.1 = 10.10
TOKEN: -
: sottrazione
token: 12: double + 0.1 = 12.10
TOKEN: 2: double + 0.1 = 2.10
TOKEN: +: addizione
TOKEN: 232: double + 0.1 = 232.10
TOKEN: +: addizione
TOKEN: 12: double + 0.1 = 12.10
TOKEN: -
: sottrazione
token: 916: double + 0.1 = 916.10
TOKEN: 2: double + 0.1 = 2.10
TOKEN: +: addizione
TOKEN: 13: double + 0.1 = 13.10
TOKEN: +: addizione
TOKEN: 12: double + 0.1 = 12.10
TOKEN: -
: sottrazione
token: 22: double + 0.1 = 22.10
TOKEN: 5: double + 0.1 = 5.10
TOKEN: +: addizione
TOKEN: 700: double + 0.1 = 700.10
TOKEN: +: addizione
TOKEN: 32: double + 0.1 = 32.10
TOKEN: -
: sottrazione
token: 19: double + 0.1 = 19.10
TOKEN: 2: double + 0.1 = 2.10
TOKEN: +: addizione
TOKEN: 1: double + 0.1 = 1.10
TOKEN: +: addizione
TOKEN: 15: double + 0.1 = 15.10
TOKEN: -
: sottrazione
token: 30: double + 0.1 = 30.10
TOKEN: 5: double + 0.1 = 5.10
TOKEN: -: sottrazione
TOKEN: 7: double + 0.1 = 7.10
TOKEN: *
: moltiplicazione
sh: PAUSE: not found