santaclause83
06-09-2007, 12:42
devo concatenare tra loro:
->un int che rappresenta un numero da 0 a 10 per indicare al server un determinao codice operativo
->una stringa che indica un nome
->un int che indica la lughezza del dato successivo su cui operare
->la stringa che rappresenta il dato
per far questo :
1)faccio una malloc di due sizeof(char)*strlen delle stringhe da inviare + due sizeof(int) per il codice op. e la lunghezza della stringa-dato
2)poi con una sprintf concateno tutto insieme nell'ordine(codop.,nome,lunghezzadato,dato)
DEL TIPO:
char* invio;
if((invio = (char *)malloc(sizeof(char)*(strlen(par1)+strlen(par2))+sizeof(int)*2))==NULL){
printf("malloc per invio comando fallita,terminazione client");exit(1);}
sprintf(invio,"%d%s_%d%s",0,par1,strlen(par2),par2);
PROBLEMA:
se stampo su schermo tutto ok,a parte il fatto che viene inserito alla fine un LINE FEED che non dovrebe esserci e manda un po' a farsi benedire l'intera comunicazione
lo vedo perche' stampando tutto con un punto e virgola finale,il punto e virgola finisce a capo
sapete mica da dove possa essere generato e come potrei evitare?
grazie!
->un int che rappresenta un numero da 0 a 10 per indicare al server un determinao codice operativo
->una stringa che indica un nome
->un int che indica la lughezza del dato successivo su cui operare
->la stringa che rappresenta il dato
per far questo :
1)faccio una malloc di due sizeof(char)*strlen delle stringhe da inviare + due sizeof(int) per il codice op. e la lunghezza della stringa-dato
2)poi con una sprintf concateno tutto insieme nell'ordine(codop.,nome,lunghezzadato,dato)
DEL TIPO:
char* invio;
if((invio = (char *)malloc(sizeof(char)*(strlen(par1)+strlen(par2))+sizeof(int)*2))==NULL){
printf("malloc per invio comando fallita,terminazione client");exit(1);}
sprintf(invio,"%d%s_%d%s",0,par1,strlen(par2),par2);
PROBLEMA:
se stampo su schermo tutto ok,a parte il fatto che viene inserito alla fine un LINE FEED che non dovrebe esserci e manda un po' a farsi benedire l'intera comunicazione
lo vedo perche' stampando tutto con un punto e virgola finale,il punto e virgola finisce a capo
sapete mica da dove possa essere generato e come potrei evitare?
grazie!