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  
FilipiBh

duvidas c++

Recommended Posts

bom o negocio e o seguinte tentei fazer um struct como se fosse uma agenda

com nome telefone e cidade porém ao final do processo gostaria que fosse exibido

na tela quantas pessoas moram em belo horizonte porém o programa ta dando pau

alguem sabe me dizer onde esta o erro???

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

struct agenda

{

char nome[50];

double telefone;

char cidade[30];

};

void main()

{

agenda cad[5];

int i,bh=0;

for(i=0;i<2;i++)

{

cout<<"Digite o nome:\n";

gets(cad.nome);

cout<<"Digite o numero do Telefone com o DDD:\n";

cin>>cad.telefone;

cout<<"Digite o nome da Cidade onde você mora:\n";

gets(cad.cidade);

if (cad.cidade=="belo horizonte")

bh++;

}

cout<<bh++<<" pessoas moram em Belo horizonte";

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- Você incluiu a cabeçalho <iostream> do C++ com a extensão .h, é só apagar a extensão.

2- Você esqueceu de adicionar as palavras-chave logo abaixo dos cabeçalhos para acessar a biblioteca padrão do C++: using namespace std; Ou se preferir, pode adicionar no início da função cout e cin: std::cout, std::cin.

3- Faça a função main() retornar int.

4- Digite essa expressão while(getchar() != '\n'); depois da expressão gets(cad.cidade); para forçar a limpeza do buffer de entrada.

5- Se eu não me engano, não se pode comparar strings dessa forma: if(cad.cidade=="belo horizonte"), procure outra maneira, como a função strcmp() ou strncmp().

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- Você incluiu a cabeçalho <iostream> do C++ com a extensão .h, é só apagar a extensão.

2- Você esqueceu de adicionar as palavras-chave logo abaixo dos cabeçalhos para acessar a biblioteca padrão do C++: using namespace std; Ou se preferir, pode adicionar no início da função cout e cin: std::cout, std::cin.

3- Faça a função main() retornar int.

4- Digite essa expressão while(getchar() != '\n'); depois da expressão gets(cad.cidade); para forçar a limpeza do buffer de entrada.

5- Se eu não me engano, não se pode comparar strings dessa forma: if(cad.cidade=="belo horizonte"), procure outra maneira, como a função strcmp() ou strncmp().

1- você pode usar iostream.h, ele não pertence ao padrão C++, mas funciona perfeitamente, embora não seja recomendado

2- o iostream.h já inclui a linha using namespace std; no código...

3- dependendo do compilador, ele realmente não aceita void como retorno de main mesmo (o padrão é int, tanto em C quanto em C++)

4- muito improvável que o programa tenha dado pau por causa disso...

anyway...

seja mais específico...

onde exatamente aconteceu o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • olha a verdade é que o erro não tem nada a ver com o que vocês disseram ai em cima o compilador é o turbo c++4.5 da borland

    ele trabalha com a biblioteca iostream.h normalmente acho que o problema esta na logica o erro deve estar no if porque o struct sem o if funciona normalmente ou de repente coloquei o cout no lugar errado sei lá agradeço a ajuda de vocês mas se puderem ser mais especificos em relação aos erros agradeço!!!!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    TioPatinhas, só um detalhe:

    1- você pode usar iostream.h, ele não pertence ao padrão C++, mas funciona perfeitamente, embora não seja recomendado

    2- o iostream.h já inclui a linha using namespace std; no código...

    3- dependendo do compilador, ele realmente não aceita void como retorno de main mesmo (o padrão é int, tanto em C quanto em C++)

    4- muito improvável que o programa tenha dado pau por causa disso...

    4 dessas dicas que eu postei não foi para corrigir o erro, e sim para ajudar a otimizar o código! Mas para ser mais franco, eu pensava que o erro estava exatamente na troca do int pelo void da função main().

    Enquanto aqui:

    4- muito improvável que o programa tenha dado pau por causa disso...

    Tente consertar o código do DJ-WEBMASTER sem incluir essa linha "while(getchar() != '\n');" para ver o que acontece!

    T+

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    TioPatinhas, só um detalhe:

    4 dessas dicas que eu postei não foi para corrigir o erro, e sim para ajudar a otimizar o código! Mas para ser mais franco, eu pensava que o erro estava exatamente na troca do int pelo void da função main().

    Enquanto aqui:

    Tente consertar o código do DJ-WEBMASTER sem incluir essa linha "while(getchar() != '\n');" para ver o que acontece!

    T+

    eu nunca tive problemas com o buffer de entrada a ponto de precisar forçar seu esvaziamento

    bom, se você disse que o problema está no if, então provavelmente ele não tá conseguindo comparar a string c/ o char *

    sugiro que você use

    if(!strcmp(cad.cidade,"belo horizonte"))

    no lugar do seu

    if (cad.cidade=="belo horizonte")

    bem provável que funcione

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • bom o problema foi resolvido no inicio não estava rolando você esqueceu de dizer para adicionar a blibliotec string.h!!! mas de qualquer forma muito obrigado o problema foi resolvido porém o que faz o comando

    strcmp porque tem que ter o ! antes dele???

    desde já agradeço!!!!!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    strcmp é uma função de comparação de strings...

    se a primeira string for maior que a segunda, ela retorna um valor maior que zero. Se a segunda for maior, retorna menor que zero.

    Quando as 2 são iguais, retorna zero

    o ! antes da strcmp faz o zero ser verdadeiro (o que você precisa na verdade é ver se elas são iguais, certo?)

    entendeu??

    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

    ×