El modo mas sencillo que conozco seria algo asi:
Código PHP:
#include <iostream>
using namespace std;
#define MAX_BUFFER 5
bool ValidarNum(char *buffer, int tam);
bool ValidarLetras(char *buffer, int tam);
int main()
{
char buffer[MAX_BUFFER];
char caracter;
bool salir;
do{
salir=true;
cout << "Ingrese un numero:";
cin.getline(buffer,MAX_BUFFER);
if(!ValidarNum(buffer, std::strlen(buffer))){
cout << "El valor ingresado no es numerico" << endl;
salir=false;
}
}while(!salir);
do{
salir=true;
cout << "Ingrese una cadena:";
cin.getline(buffer,MAX_BUFFER);
if(!ValidarLetras(buffer, std::strlen(buffer))){
cout << "El valor ingresado no es alfabetico" << endl;
salir=false;
}
}while(!salir);
}
bool ValidarNum(char *buffer, int tam)
{
int retval=true;
for(int i=0; i<tam && buffer[i] != 0; i++)
{
if(buffer[i] < '0' || buffer[i] > '9'){
retval=false;
break;
}
}
return retval;
}
bool ValidarLetras(char *buffer, int tam)
{
int retval;
for(int i=0; i<tam && buffer[i] != 0; i++)
{
if((buffer[i] < 'a' || buffer[i] > 'z') && (buffer[i] < 'A' || buffer[i] > 'Z')){
retval=false;
break;
}
}
return retval;
}
Si lo que realmente quieres es que no se muestren en pantalla los caracteres no deseados eso ya es otro cantar. Por ahi tengo que tener un codigo en C que hace eso pero ya digo que no es nada estandar y depende de la plataforma ya que el que tengo yo solo funciona en Windows porque usa apis de este para controlar la entrada.