Ir ao conteúdo
  • Cadastre-se

zanuzo

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Bom dia galera, estou com um probleminha com meu codigo em C, ele registra votos em um arquivo .dat. MInha dúvida é a seguinte, quando ele chega na opção para confirmar voto, se eu digitasse 0(não), ele teria que voltar ao inicio, na parte onde pede para digitar o numero do candidato. Tentei varias maneiras inclusive usando while, e não deu certo, pode ser que seja só questão de logica, mas como sou novato ainda nessa area, não consegui decifrar esse enigma hehehe. Agradeço a ajuda se possível! Programa: #include <stdio.h> #include <stdlib.h> #include <string.h> struct cadastro { int numero; char nome[100]; int partido; }; struct cadastro candidatos; void procurar(); int main() { struct cadastro c; FILE *fp; FILE *fp2; int continua = 1; int numero = 0; int voto = 0; int opcao = 10; printf("=============================\n"); printf("Digite o número do candidato: "); scanf("%d", &numero); fp = fopen("principal.dat", "rb"); if (fp == NULL) { printf("////////////////////////\n"); printf("Erro ao abrir o arquivo!\n"); printf("////////////////////////\n\n"); } else { printf("///////////////////////////\n"); printf("Arquivo aberto com sucesso!\n"); printf("///////////////////////////\n\n"); } while (numero != c.numero && continua == 1) { fread ( &c, sizeof(c), 1, fp); if (feof(fp)) { printf("*************\n"); printf("Procurando...\n"); printf("*************\n\n"); continua = 0; printf("/////\n"); printf("Erro!\n"); printf("/////\n\n"); } } if (continua != 0) { printf("******************\n"); printf("Nome: %s\n", c.nome); printf("Número: %d\n", c.numero); printf("Partido: %d\n", c.partido); printf("******************\n\n"); printf("Confirmar voto? 1 - SIM, 0 - NÃO\n"); scanf ("%d", &opcao); if (opcao == 1) { fp2 = fopen("urna.dat", "ab"); if (fp == NULL || fp2 == NULL) { printf("Erro na abertura do arquivo!\n"); } else { printf("******************\n"); printf("Nome: %s\n", c.nome); printf("Número: %d\n", c.numero); fwrite(&c, sizeof(c), 1, fp2); } } fclose(fp2); printf("Voto confirmado!\n"); } else { printf("***********************************\n"); printf("Desculpe, candidato não encontrado!\n"); printf("***********************************\n\n"); } fclose(fp); }

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!