Salve a tutti,
dopo 2 anni che non toccavo il c eccomi di nuovo qui a bestemmiare![]()
In pratica devo usare il c per alcune lezioni all'uni ma ho alcuni problemi sulla fgets. Il "programma" che volevo realizzare semplicemente butta fuori in output una riga di comando letta e tagliata se supera n caratteri (scartando i caratteri di troppo).
esempio di come dovrebbe funzionare (limitata a 3 caratteri la lettura e quindi 2+newline secondo il mio ragionamento):
bertuz@bertuzmobile:~$ ./prova
inserisci: c
hai scritto: c
inserisci: ci
hai scritto: ci
inserisci:
inserisci: cia
hai scritto: ci
inserisci:
MA IN REALTA' MI VA COSI'...
bertuz@bertuzmobile:~$ ./prova
inserisci: c
hai scritto: c
inserisci: ci
hai scritto: ci
inserisci: hai scritto:
inserisci: cia
hai scritto: ci
inserisci: hai scritto: a
inserisci:
bertuz@bertuzmobile:~$
=========================================
Vi posto il codice. Ovviamente ricordo che la cosa era un pò ostica per input output di stringhe ma sto errore proprio.. bho! Le ho provate tutte (anche fflush(stdin)) ma sembra non funzioni a dovere..
#include <stdio.h>
int main(){
char *risultato = (char *)malloc(sizeof(char)*4);
while(1){
printf("inserisci: ");
fgets(risultato,3,stdin);
fflush(stdin);
printf("hai scritto: %s \n",risultato);
}
}
bhoo se ci capite qualcosa..ricambierò con un caffè
![]()