Ciao a tutti. Sto cominciando a muovere i primi passi nella programmazione in C.
Come da titolo:

codice:
#include <stdio.h>
main()
{
int c;
int i = 0;
while ((c=getchar()) != '$')
  i++;
printf("%d\n", i);
getchar();
}
vorrei che contasse tutti i caratteri diversi da $ e che infine mi stampasse tale valore.
I miei dubbi sono due:
1) il programma non riconosce l'ultimo getchar e non appena inserisco $, esso termina immediatamente;
2) poco prima che si chiuda riesco a vedere il valore di i che il programma stampa e mi sono accorto che è sempre il doppio del numero di caratteri che io inserisco. Come mai??

Vi ringrazio in anticipo per l'aiuto.