Alguem consegue me ajudar a resolver esse problema? É um programa que separa as casas dos numeros( milhar, centena, dezena, etc), porém estava tendo um problema: quando a pessoa digitava uma letra ao invés de um numero o programa bugava totalmente. então tentei arrumar isso usando a variavel valor, o problema é que agora se alguem digita uma letra ele a mensagem de erro "printf("Valor Invalido");" aparece e o programa nao volta ao inicio como eu queria que acontecesse, alguem pode me ajduar a resolver isso?
int main ()
{
int opc = 1;
int valor;
while (opc != 2)
{
system("cls");
printf("Separador de Unidades:\n\n");
printf("Escolha um numero de 1 a 9999: ");
valor = scanf("%d", &num);
if(valor==0)
{
system("cls");
printf("Valor Invalido!");-
}
else
{
if (num > 9999 || num < 0)
{
system("cls");
printf("Valor invalido");
}
else
{
rest(num);
}
system("pause");
system("cls");
printf("1.Voltar ao inicio\n2.Sair\n");
scanf("%d", &opc);
}
}
return 0;
}