Ir para conteúdo
Fórum Script Brasil
  • 0

verificar se não é caracter


tahinf

Pergunta

Boa tarde!

estou fazendo um trabalho da facul e nele o numero digitado é float, queria fazer algo pra não deixar o usuário digitar caracter ou fazer q apareça alguma msg de erro porque quando digita ele dá erro (claro né)

obs: o programa tá funcionando certinho, só queria deixar mais certinho ^^

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olha, para fazer esse tipo de validação, devemos ver como a scanf() funciona.

A scanf() retorna a quantidade de variáveis que ela conseguiu ler.

Ex.:

int teste;
scanf("%d",&teste);
Se você digitar um número inteiro, ela retornará 1, caso contrário, a scanf retornará 0. Mas vale esclarecer o seguinte: A scanf() foi projetada para ler sequencialmente o que você digitar. Ex.:
int teste;
scanf("%d",&teste);
Se você digitar "123abc", ele irá guardar "123" na variável teste e irá descartar o "abc". Como a scanf() conseguiu atribuiu o número, ele retornará 1 dizendo que conseguiu ler a variável. Agora se você digitar "abc123", como a scanf() lê sequencialmene o que você digita, ele irá ver que o primiro dado se trata de uma string e não guardará nada na variável teste e retornará 0 dizendo que não conseguiu ler. Um outro caso especial: Se no exemplo acima você digitar 10.5, a scanf() vai ler o número inteiro antes do ponto, atrubuindo-o na variável teste e retornará 1. Então, a scanf() tem retorno do tipo int e retorna 1 (se ela estiver lendo apenas uma variável, ela pode ler mais) se ela conseguiu ler o dado digitado e 0 se não conseguiu ler (usuário digitou um dado inválido). Agora um exemplo de validação com a scanf():
int teste = -1;
int valido = 1;
do
{
    valido = scanf("%d",&teste);
    fflush(stdin); // Sempre limpe o buffer para realizar uma nova leitura.
    if(!valido)
        puts("Dado invalido!");
}while(!valido);

Caso o usuário digite um dado inválido (uma string por exemplo), ele irá invalidar!

Espero ter ajudado!

Vejam mais sobre a scanf() clicando aqui.

Editado por bruce845
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...