Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Amauri88

Structs

Mensagens Recomendadas

Amauri88

Boa Noite!

Pessoal estou a fazer um trabalho estruturas, eu já consegui mostrar o registo, pesquisá lo, pesquisá-lo, e eliminá-lo.

Mas só que o problema não é esse, o problema é que eu consigo eliminar o registo (letras vermelhas), mas quando elimino no mostrar todos os registo fica lá as Strings (sublinhadas) vazias, sem nada preenchido, eu queria arranjar uma maneira de eliminar os registos e as Strings serem também eliminadas.

Espero que me possam ajudar, é urgente.

pragma once

#include<stdio.h>

#include<string.h>

#include<Windows.h>

#define MAX_REGISTOS 2

struct Contacto {

char Nome[30];

char Email[30];

char Telefone[30];

char Morada[50];

char Localidade[50];

}contactos[MAX_REGISTOS];

Contacto PreencherContacto() {

struct Contacto c;

fseek(stdin, 0, SEEK_END); // Limpeza do buffer

printf("\nNome: ");

gets_s(c.Nome);

fseek(stdin, 0, SEEK_END); // Limpeza do buffer

printf("\nEmail: ");

gets_s(c.Email);

printf("\nTelefone: ");

gets_s(c.Telefone);

fseek(stdin, 0, SEEK_END);

printf("\nMorada: ");

gets_s(c.Morada);

fseek(stdin, 0, SEEK_END);

printf("\nLocalidade: ");

gets_s(c.Localidade);

return c;

}

void MostraContacto(Contacto *contactos) {

printf("\n\nNome: %s \n\n ", contactos->Nome);

printf("\nEmail: %s \n\n", contactos->Email);

printf("\nTelefone: %s \n\n", contactos->Telefone);

printf("\nMorada: %s \n\n", contactos->Morada);

printf("\nLocalidade: %s \n\n", contactos->Localidade);

return;

}

void MostraListaContacto(Contacto*contactos, int ultimoContacto) {

int i;

if (ultimoContacto <= 0) {

return;

}

else {

for (i = 0; i <= ultimoContacto; i++) {

printf("Contacto nº %d", i);

MostraContacto(&contactos);

printf("\n\n************************** \n\n");

}

}

return;

}

void EditarContacto(Contacto *contactos) {

fseek(stdin, 0, SEEK_END); // Limpeza do buffer

printf("\nNome: ");

gets_s(contactos->Nome);

fseek(stdin, 0, SEEK_END); // Limpeza do buffer

printf("\nEmail: ");

gets_s(contactos->Email);

printf("\nTelefone: ");

gets_s(contactos->Telefone);

fseek(stdin, 0, SEEK_END);

printf("\nMorada: ");

gets_s(contactos->Morada);

fseek(stdin, 0, SEEK_END);

printf("\nLocalidade: ");

gets_s(contactos->Localidade);

return;

}

void EliminaContacto(Contacto *contactos) {

strcpy_s(contactos->Nome, "");

strcpy_s(contactos->Email, "");

strcpy_s(contactos->Telefone, "");

strcpy_s(contactos->Morada, "");

strcpy_s(contactos->Localidade, "");

}

void EliminaListaContactos(Contacto *contactos, int ultimoContacto) {

int i;

if (ultimoContacto <= 0) {

return;

}

else {

for (i = 0; i <= ultimoContacto; i++) {

printf("A eliminar contacto nº %d ", i);

EliminaContacto(&contactos);

printf("\n\n************************** \n\n");

}

}

return;

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PsySc0rpi0n

Boas. Devias começar por colocar o código devidamente formatado. Eu nem me dei ao trabalho de ler o código só por causa disso mesmo.

@paulolz,seria a variável ultimoContacto, não?

Editado por PsySc0rpi0n

Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoaoSkate

para colocares o codigo formatado basta clicares no icone <> quando estas a escrever uma mensagem, aqui no forum e colares o teu codigo na caixa de texto que te apareçe, depois basta fazeres code =c

CODE=c

aqui colocas o teu codigo

[/code]

Editado por JoaoSkate

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

@paulolz,seria a variável ultimoContacto, não?

não sei o quanto intensional a pergunta foi efectuada, mas é um ponto fundamental para resolver o problema


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PsySc0rpi0n

não sei o quanto intensional a pergunta foi efectuada, mas é um ponto fundamental para resolver o problema

Pois, mas pelo nome da variável, tudo indica que possa ser ela quem tem essa informação!


Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.