wurilo
-
Posts
6 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por wurilo
-
-
Boa noite Pessoal.
Estou com problemas em um código em C, tenho q pegar dados (nome e telefone) de algumas pessoas em uma Struct, depois armazena-las em um vetor, tudo isso por uma função/procedimento, abaixo segue meu código, porém na hora de imprimir sai uns caracteres estranhos. Se puderem me ajudar agradeceria muito.
Estou usando a plataforma DEV C++
# include <conio.h>
# include <stdio.h>
# include <stdlib.h>
#define MAX 2
typedef struct dadosPessoais
{
char nome = ' ';
int telefone = -1;
}DadosPessoais;
void inserir(DadosPessoais *vetor);
void listar(DadosPessoais *vetor);
int main()
{
int escolha=1;
DadosPessoais vetor[MAX];
// se a escolha for diferente de 3, ele continua... o que inicialmente é verdade
// pois escolha é igual a 1
while (escolha!=5)
{
printf("\n\n ----------------------- ");
printf("\n 1 - Inserir novo registro ");
printf("\n 2 - Limpar registros da tabela ");
printf("\n 3 - Fechar Programa ");
printf("\n\n Escolha uma opcao: ");
scanf("%d",&escolha);
// estrutura switch
switch (escolha)
{
case 1:
{
system ("cls");
inserir(vetor);
break;
}
case 2:
{
system ("cls");
listar(vetor);
break;
}
// opção padrão
default:
{
system ("cls");
// se for escolhida a opção 3, ele pula o while utilizando continue para isso
if( escolha==3)
{
continue;
}
// caso o usuário digite um numero acima de 5, ele irá informar que nao existe essa opção
printf("\n\n Nenhuma opcao foi escolhida ");
break;
}
}
}
if( escolha==3)
printf("\n\n O Programa foi fechado");
system("PAUSE");
}
void inserir(DadosPessoais *vetor)
{
int x=3, i, espaco ;
for(i=0; i<x; i++)
{
if (vetor[i].nome == ' ')
{
espaco = 1;
break;
}
else
{
espaco = 2;
}
}
if (espaco == 1)
{
printf("Digite nome: \n");
scanf(" %s", &vetor->nome);
printf("Digite o telefone: \n ");
scanf(" %d", &vetor->telefone);
}
else
{
printf("Nao ha espaco vago \n ");
}
}
void listar(DadosPessoais *vetor)
{
int x=MAX, i, espaco ;
for(i=0; i<x; i++)
{
if (vetor[i].nome != ' ')
{
printf(" %c", &vetor[x].nome);
printf("\n");
printf(" %c", &vetor[x].telefone);
printf("\n");
}
else
{
printf("Vetor vazio");
}
}
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
Vetores de struct em função
em C/C#/C++
Postado
Boa noite Mauro,
Muito obrigado por me ajudar, porém como saberei após realizar esta alteração se há índices vagos no vetor?