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

Codigo De Valida Cpf


diegorj2

Pergunta

1 resposta a esta questão

Posts Recomendados

  • 0
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

class CPF
{
      char *num;
    public:
      CPF(){ num = new char[12]; }
      int GetNum();
      void Print();
};

int CPF::GetNum()
{
    int Valor , Fator, Resto1, Dig1, i;
    int Soma2 , Divisao2, Resto2, Dig2;
    Valor = 0;

    scanf( "%11s", num );

    /* PRIMEIRO DIGITO VERIFICADOR */
    for( i=0; i<9; i++ )
        Valor += (num[i] - 48) * (10 - i);

    Fator  = (Valor/11);
    Fator *= 11;

    Valor = Valor - Fator;

    // Se Valor igual a 0 ou 1 Dig1 recebe 0 senao
    // Dig1 recebe 11-Dig1
    Dig1 = Valor < 2 ? 0 : 11-Valor;

    Valor = 0;

    /* SEGUNDO DIGITO VERIFICADOR */
    for( i=0; i<9; i++ )
        Valor += (num[i] - 48) * (11-i);
    Valor += Dig1 * 2;

    Fator  = (Valor/11);
    Fator *= 11;

    Valor = Valor - Fator;

    // Se Valor igual a 0 ou 1 Dig2 recebe 0 senao
    // Dig2 recebe 11-Dig2
    Dig2 = Valor < 2 ? 0 : 11-Valor;

    return  Dig1==(num[9] - 48) && Dig2==(num[10] - 48) ? 0 : Dig1*10+Dig2;
}

void CPF::Print()
{ printf(num); }

void main()
{
    clrscr();
    CPF n;
    int ret;
    char str[3], buffer[20];

    if( ret=n.GetNum() )
    {
        printf("\nN£mero inv lido");
        itoa(ret,str,10);
        sprintf(buffer, "\nValidaria com: %s", str);
        puts(buffer);
    }
    else
        printf("\nN£mero V lido");
    getch();
}

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...