Salve, scusate per l'oggetto, ma nn sapevo come scriverlo meglio. Allora ho questo probelma, ho una funzione A, al cui interno richiedo un numero tramite getchera();, e dopo aver acquisito questo valore, lo passo ad una funzione B, che mi salva tutto quello che scriverà dalla tastiera finchè non premo invio. Il problema è che non entra proprio nel ciclo while, perchè è come se avesse ancora memorizzato il valore. Ecco un esempio che chiarisce meglio:
/*Nella funziona A, oppure nel main, è lo stesso*/
printf("Inserisci un numero\n");
c = getchar();
acquisisci(c);
/*Nella funzione acquisisci*/
void acquisisci(int Number)
{
int c, i;
char *BUFFER;
/*alloca lo spazio per contenere una stringa di MAX_C caratteri*/
BUFFER = (char *)malloc(100*sizeof(char));
printf("Inserisci una stringa\n");
i = 0;
/*Acquisisco il primo carattere*/
c = getchar();
/*il ciclo acquisisce caratteri fino al raggiungimento di MAC_C caratteri acquisiti*/
/*oppure finche' non si preme invio*/
while(c != '\n')
{
BUFFER[i] = c;
i++;
c = getchar();
}
/*chiude la stringa*/
BUFFER[i] = '\0';
printf("La stringa che hai inserito è: %s\n", BUFFER);
}
Questo è l'output:
Inserisci un numero
5
Inserisci una stringa
La stringa che hai inserito è:
Premi Invio per continuare!
Ecco, il programma termina, perchè è come se acquisici avesse anche il mio Invio e non entra nel while..ho provato fflush(stdin) ma nulla...come si potrebbe risolvere?
grazie