Originariamente inviato da spiderontheweb
1) Io voglio prendere un int e non un float
Non lo hai mai detto. Sembrava che l'errore fosse il fatto che non ottenessi i decimali che ti erano necessari.

2) Se voglio un intero uso %d
Basta dirlo ...

3) La funzione deve dare errore in caso di caratteri diversi da intero
E dirlo prima? Non so se hai riletto il tuo primo post ...

A questo punto, il problema cambia ...

Puoi risolvere, come ti e' stato detto, acquisendo una stringa e testandone il contenuto.

Oppure acquisendo un dato in floating point confrontandolo con la sua parte intera.