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);
system("pause");
}