Olá pessoal, to com um problema em uma parte de um código que irei postar posteriormente.
Descrição do problema: fiz uma struct com alguns dados de formulário, e criei um menu para gerenciar o que deve ser realizado no sistema, inserir, remover, consultar e alterar dados.
meu maior problema é na hora de remover os dados de um vetor e reorganiza-los, outro problema é não hora de alterar uma string. vou postar o código e explicar, se alguem puder me guiar aonde está o erro fico muito grato!
remover: ele executa até o usuário clicar em "sim", ai o sistema para de funcionar e apresenta o mesmo erro quando não se colocar "&" antes da variável no scanf.
case 1:
{
printf ("\nInforme o código?:");
scanf ("%d", &dado);
for (w = 0; w <= i; w++)
{
if (dado == contatos[w].codigo)
{
printf ("\n%i", contatos[w].codigo);
printf ("\n%s", contatos[w].nome);
printf ("\n%i", contatos[w].telefone);
printf ("\n%s", contatos[w].email);
Pergunta
JonatasBorges
Olá pessoal, to com um problema em uma parte de um código que irei postar posteriormente.
Descrição do problema: fiz uma struct com alguns dados de formulário, e criei um menu para gerenciar o que deve ser realizado no sistema, inserir, remover, consultar e alterar dados.
meu maior problema é na hora de remover os dados de um vetor e reorganiza-los, outro problema é não hora de alterar uma string. vou postar o código e explicar, se alguem puder me guiar aonde está o erro fico muito grato!
remover: ele executa até o usuário clicar em "sim", ai o sistema para de funcionar e apresenta o mesmo erro quando não se colocar "&" antes da variável no scanf.
case 1:
{
printf ("\nInforme o código?:");
scanf ("%d", &dado);
for (w = 0; w <= i; w++)
{
if (dado == contatos[w].codigo)
{
printf ("\n%i", contatos[w].codigo);
printf ("\n%s", contatos[w].nome);
printf ("\n%i", contatos[w].telefone);
printf ("\n%s", contatos[w].email);
printf ("\n\nDeseja remover o cadastro acima?");
printf ("\n1 - Sim");
printf ("\n2 - Não");
printf ("\nOpção: ");
scanf ("%i", &removecontrato);
if (removecontrato == 1)
{
for (w = 0; w <= i; w++)
{
contatos[w].codigo = contatos[w+1].codigo;
strcpy(contatos[w].nome, contatos[w+1].nome);
contatos[w].telefone = contatos[w+1].telefone;
strcpy(contatos[w].email, contatos[w+1].email);
ultimo++;
}
contatos[ultimo].codigo = NULL;
strcpy(contatos[ultimo].nome, NULL);
contatos[ultimo].telefone = NULL;
strcpy(contatos[ultimo].email, NULL);
i--;
}
else if (removecontrato != 1 && removecontrato != 2)
{
printf ("\nOpção incorreta!");
}
}
}
break;
}
alterar: quando digita o nome antigo ele sai do "case" e volta para o menu.
case 2:
{
printf ("\nInforme o antigo nome?:");
fflush(stdin);
gets(sdado);
for (w = 0; w <= i; w++)
{
if (sdado == contatos[w].nome)
{
printf ("\n%i", contatos[w].codigo);
printf ("\n%s", contatos[w].nome);
printf ("\n%i", contatos[w].telefone);
printf ("\n%s", contatos[w].email);
printf ("\n\nDeseja alterar o nome acima?");
printf ("\n1 - Sim");
printf ("\n2 - Não");
printf ("\nOpção: ");
scanf ("%i", &alterarcontrato);
if (alterarcontrato == 1)
{
printf ("Informe o novo nome: ");
fflush(stdin);
gets(contatos[w].nome);
printf ("\nNome alterado para: ", contatos[w].nome);
}
else if (alterarcontrato != 1 && alterarcontrato != 2)
{
printf ("\nOpção incorreta!");
}
}
}
}
break;
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.