intanto il cout della domanda dovresti metterla nel do while sennò poi non viene più stampata.. poi a è un int e quindi non credo tu debba fare un paragone con i codici ascii ma bensì con i numeri direttamente:

codice:
int main()
{
    int a;
    do
    {
         cout << "inserisci un numero" <<endl;
         cin >> a;
     }
     while (a < 0 || a > 9);

     return 0;
}