Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Tobias Basso

C++ Como formatar o CPF??

Recommended Posts

#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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer mostrar o CPF na tela com os pontos e o hífen?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;
}

 

 

Editado por cyer
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×