Mira la funcion atoi convierte de caracteres a entero.
Por lo que dices tu quieres pasar de caracter al numero ascii. No tiene nada que ver con atoi. Si es esto lo que quieres simplemente usa a la variable que tenga un caracter como si fuese un entero. o asignala a un enetero de esta forma.
Código C++:
Ver originalint entero;
char caracter;
entero = (int) caracter;
Si lo que en verdad quieres hacer es el atoi tiene que pensar en eso. Al codigo ascii de los digitos si le restamos el numero ascii del '0' vamos a obtener un numero entre 0 y 9 que es el numero correspodiente al digito.
Ahora usando matimatica e iterando sobre la cadena de caracteres podemos crear el numero de la sigueinte forma
numero = numero * 10 + digito;
en la variable numero vamos llevando el numero que se va formando. y en la variable digito es el numero que representa el digito leido de la forma en que te dije.
Código C++:
Ver originalnumero = 0;
for(i=0;cadena[i] != '\0';i++)
numero = numero * 10 + (cadena[i] - '0');