I have to get data (name and phone) from some people in a struct
, then store them in a vector, all by a function / procedure. At the time of printing some strange characters come out.
I'm using the C ++ DEV platform
# 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");
}
}
}