Programa em c, repetição

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");

}