Ciao a tutti
prima che mi diciate che è stato gia detto mille volte vi avverto LE HO PROVATE TUTTE

ho provato:

fgets (do invio e non va avanti)
getline (idem)
getchar
(non riesco a svuotare il buffer fflush(stdin) non funziona)

Ho provato cosi:

void catturaMessaggio(char * msg){

strcpy(msg, ""); //Azzero la stringa in ingresso
char car;
int i=0;

//Svuoto il buffer
do{
car=getchar(); //Legge un carattere da stdin fino a /n oppure EOF
}while(car!='\n' && car!=EOF);

car=getchar();
while(car != '\n'){ //Finche non ho premuto invio
msg[i]=car;
car=getchar();
i++;
}
msg[i]='\0'; //Chiudo la stringa presa in input con il terminatore di stringa \0
}

Ma c'è qualcosa di sbagliato perchè le prime volte va poi invece si blocca sul primo while e devo dare invio a mano per andare sul secondo while.

Come lo correggo??