Ir ao conteúdo

Posts recomendados

Postado

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
Postado

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
Postado

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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!