Ir ao conteúdo
  • Cadastre-se

C++ alguem pode me ajudar


Ryan Luca

Posts recomendados

estou com problema em um programa que estou fazendo... (obs: sou bem iniciante)

  

é um programa simples de cadastro, mais quando eu coloco o nome ele finaliza o programa sem deixar eu colocar as outras informações, não to achando o erro, alguem pode me ajudar ?, obrigado desde já :) 

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;

int
main () 
{
  
char result[1], nome, estado, cidade, estado_nasceu, nome_login, senha,
    senha_login;
  
int idade;
  
 
printf
    ("=====Digite (L) para fazer login ou (C) para se cadastrar=====");
  
cout << "-> ";
  
cin >> result;
  
 
if (result == "C");
  
 
printf ("Digite seu nome:     ");
  
cout << "-> ";
  
cin >> nome;
  
 
printf ("Digite sua idade:    ");
  
cout << "-> ";
  
cin >> idade;
  
 
printf ("Estado onde vive:    ");
  
cout << "-> ";
  
cin >> estado;
  
 
printf ("Cidade onde vive:   ");
  
cout << "-> ";
  
cin >> cidade;
  
 
printf ("Estado onde nasceu:    ");
  
 
cout << "-> ";
  
cin >> estado_nasceu;
  
 
printf ("Digite a senha que queira colocar:    ");
  
cout << "-> ";
  
cin >> senha;
  
 
printf ("Seu cadastro estC! pronto, digite (E) para voltar ao menu");
  
cout << "->  ";
  
cin >> result;
  
 
if (result == "L");
  
printf ("Digite seu nome: ");
  
cout << "-> ";
  
cin >> nome_login;
  
printf ("Digite sua senha: ");
  
cout << "-> ";
  
cin >> senha_login;
  
 
if (senha_login == senha);
  
 
    //ainda continuando... 

 
 
 
 
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

O problema está na declaração das variáveis, você as declarou como 1 único char, ou seja só dá pra armazenar 1 caractere em cada variável, então quando você digita um texto cada cin do seu código vai lendo 1 caractere e guardando em uma respectiva variável, então seu código todo é executado até o fim.

 

Você poderia declarar vetores de caracteres como "char result[100]" nesse caso podendo armazenar até 100 caracteres.

 

Mas o melhor seria declará-las como objetos da classe string:

string result, nome, estado, cidade, estado_nasceu, nome_login, senha,
    senha_login;

 

Que pode armazenar quantidades aleatórias de caracteres.

  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Olá o tipo string está definido apenas na biblioteca <string> exclusiva para c++, em c utilizamos vetores de caracteres para armazenar o tipo string. Como vetores armazenam um tipo por posição uma palavra de 20 letras poderia ser representada por palavra[21], lembre-se que a ultima posição por padrão é o carácter '\0' que marca o final da string armazenada, aloque posições na memória para os tipo char declarados:

 

char result[25], nome[40], estado[20], cidade[20], estado_nasceu[20], nome_login[20], senha[20],
    senha_login[20];

Observe que nesse exemplo a cidade só poderá armazenar 19 caracteres(1 reservado ao '\0'), caso o usuário digite algo com mais que 20 caracteres, apenas os 20 primeiros serão armazenados.

 

Para imprimir uma string você deve fazer um for que percorre cada posição do vetor e vai ate o carácter '\0' ou usar o método lenght(), declarado em <string.h>.

 

Qualquer duvida estou a disposição

Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!