Eu to usando o borland C++ 3.0 tb, eu tentei fazer aki um pograminha basico, q verifica se é numero, se for joga no int e mostra olha:   
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
void main (void)
{
	char *a;
	int b;
	clrscr();
	cout<<"Digite um numero: ";
   cin>>a;
	if(isalpha(*a)==0)
	{
  b=atoi(a);
  cout<<b;
	}
	else
  cout<<"Digite um valor valido!!!";
	getch();
}
  Se você definir o char como ponteiro funciona. acho q isso resolve, só da umas ajeitada usando while e tal e já eras. Ve se é o q você queria, qualquer coisa posta ai....to aprendendo com isso tb, hehe