Ir ao conteúdo

Posts recomendados

Postado

#include <iostream>

using namespace std;

int main()
{
    int d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,soma, soma2, teste=1000;
  


        for (int i=0;i<teste;i++){

    cin >> d1 >> d2 >> d3  >> d4 >> d5 >> d6 >> d7 >> d8 >> d9  >> d10 >> d11;

    soma=((d1*1)+(d2*2)+(d3*3)+(d4*4)+(d5*5)+(d6*6)+(d7*7)+(d8*8)+(d9*9));
    soma2=((d1*9)+(d2*8)+(d3*7)+(d4*6)+(d5*5)+(d6*4)+(d7*3)+(d8*2)+(d9*1));

    if (d10 == soma%11 && d11 == soma2%11){
        cout << "CPF valido" <<endl;
    }else{
    cout << " CPF invalido" <<endl;
    };

        }


}

 

\\ estou com este código, mas preciso formatar o CPF, ou seja, colocar os pontos e o hifen tambem.

E como faço pro programa aceitar sem dar espaços? 'É possível?

  • Curtir 1
Postado

@Tobias Basso      que pontos e que hífens ?   pelo que sei o número no cpf seria assim :

123 456 789 00

então você pode usar uma string para pegar o número todo, digitando sem espaço entre os dígitos e depois converter para inteiro usando a função atoi e colocar em um vetor e depois fazer os cálculos ,  então seu código com algumas modificações ficaria assim :

#include <iostream>
#include <string.h>
#include <vector.h>
#include <ctype.h>
using namespace std;
int main()
{
    int d[11],j,d1,soma=0, soma2=0, teste=1000;
    char cpf[15],cp2[15];
    for (int i=0;i<teste;i++){
        cout<<"Digite o cpf ";
        cin>>cpf;
        for(j=0;j<11;j++){
            cp2[0]=cpf[j];
            d[j]=atoi(cp2);
            if(j<9){
                soma += d[j]*(j+1);
                soma2+= d[j]*(9-j);
            }
        }
        if (d[9] == soma%11 && d[10] == soma2%11){
            cout << "CPF -> "<<d[0]<<d[1]<<d[2]<<" "<<d[3]<<d[4]<<d[5]<<" "<<d[6]<<d[7]<<d[8]<<" "<<d[9]<<d[10]<<" valido ." <<endl;
        }else{
            cout << " CPF invalido" <<endl;
        }
    }
}

 

  • Curtir 1
Postado

Talvez seja isso que você queira?

 

ZgFzWR0.png

 

ONCpect.png

 

#include <iostream>
#include <Windows.h>
#include <string>

bool CPFEstaFormatado(std::string CPF)
{
    for (size_t i = 0; i < CPF.size(); i++)
    {
        if (CPF[i] == '.')
            return true;
    }
    return false;
}

int main()
{
    std::string CPF;

    std::cout << "Insira o CPF: ";
    std::cin >> CPF;

    std::string CPFSemFormatacao = CPF;
    if (CPFEstaFormatado(CPF))
    {
        CPFSemFormatacao.clear();
        for (size_t i = 0; i < CPF.size(); i++)
        {
            if (CPF[i] != '.' && CPF[i] != '-')
                CPFSemFormatacao.push_back(CPF[i]);
        }
    }
    else // Se não tiver formatado adiciona a formatação no CPF
    {
        std::string temp;
        for (int i = 0; i < CPF.size(); i++)
        {
            if (i != 3 && i != 6 && i != 9)
                temp.push_back(CPF[i]);
            else
            {
                temp.push_back(i == 9 ? '-' : '.');
                temp.push_back(CPF[i]);
            }
        }
        CPF = temp;
    }

    std::cout << "CPF sem formatacao: " << CPFSemFormatacao << std::endl;
    std::cout << "CPF com formatacao: " << CPF << std::endl;

    // Seu código...

    system("pause");

    return 0;
}

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!