Olá pessoal. Estou com um problemão (ao menos pra mim)... Estou desenvolvendo um programa com a finalidade de gerar códigos aleatórios para mim, resumidamente as combinações disponíveis nele podem ser: A(1,2) B(1,2,3) C(2,3,4) D(3,4,5). Ou seja, os códigos que o programa pode gerar pra mim variam entre A1 B3 C2 A3; A2 B1 B1 A1 D5. Mas eu preciso salvar estes códigos em um controle de informações (este consegui fazer). Porém preciso que o programa gere esses códigos sem ambiguidade, ou seja, ele não pode fornecer o mesmo código 2 vezes, mas agora não sei como fazer para que ele leia este arquivo e então "procure" alguma codificação semelhante. Alguém pode me ajudar? Segue um escopo do script (ele está poluído porque não utilizei funções em ações repetidas). #include <stdio.h>
#include <string.h>
int main ()
{
int perfil;
FILE *dados;
while(perfil!=0){
printf("\nDigite o perfil da chave ou 0 para sair.\n\n");
scanf("%d", &perfil);
if(perfil!=0){
dados = fopen("mestragens.txt", "a+");
srand(time(NULL));
char s1[10];
char s2[10];
char s3[10];
char s4[10];
int letra1 = rand()%4 + 1;
if(letra1==1){
strcpy(s1,"A");}
if(letra1==2){
strcpy(s1,"B");}
if(letra1==3){
strcpy(s1,"C");}
if(letra1==4){
strcpy(s1,"D");}
int letra2 = rand()%4 + 1;
if(letra2==1){
strcpy(s2,"A");}
if(letra2==2){
strcpy(s2,"B");}
if(letra2==3){
strcpy(s2,"C");}
if(letra2==4){
strcpy(s2,"D");}
int letra3 = rand()%4 + 1;
if(letra3==1){
strcpy(s3,"A");}
if(letra3==2){
strcpy(s3,"B");}
if(letra3==3){
strcpy(s3,"C");}
if(letra3==4){
strcpy(s3,"D");}
int letra4 = rand()%4 + 1;
if(letra4==1){
strcpy(s4,"A");}
if(letra4==2){
strcpy(s4,"B");}
if(letra4==3){
strcpy(s4,"C");}
if(letra4==4){
strcpy(s4,"D");}
int num1;
if(letra1==1){
num1 = rand()%2+1;}
if(letra1==2){
num1 = rand()%3+1;}
if(letra1==3){
num1 = rand()%3+2;}
if(letra1==4){
num1 = rand()%3+3;}
int num2;
if(letra2==1){
num2 = rand()%2+1;}
if(letra2==2){
num2 = rand()%3+1;}
if(letra2==3){
num2 = rand()%3+2;}
if(letra2==4){
num2 = rand()%3+3;}
int num3;
if(letra3==1){
num3 = rand()%2+1;}
if(letra3==2){
num3 = rand()%3+1;}
if(letra3==3){
num3 = rand()%3+2;}
if(letra3==4){
num3 = rand()%3+3;}
int num4;
if(letra4==1){
num4 = rand()%2+1;}
if(letra4==2){
num4 = rand()%3+1;}
if(letra4==3){
num4 = rand()%3+2;}
if(letra4==4){
if(perfil==113){
//---------------
printf("Z0 %s%d %s%d %s%d %s%d \n\nZ%s%s%s%s 0%d%d%d%d\n\n", s1, num1, s2, num2, s3, num3, s4, num4, s1, s2, s3, s4, num1, num2, num3, num4);
fprintf(dados,"Z%s%s%s%s 0%d%d%d%d\n", s1, s2, s3, s4, num1, num2, num3, num4);}
else{
if(perfil==236){
//--------------
printf("\n%s%d Z0 %s%d %s%d %s%d \n\n%sZ%s%s%s %d0%d%d%d\n\n", s1, num1, s2, num2, s3, num3, s4, num4, s1, s2, s3, s4, num1, num2, num3, num4);}
else{printf("\ndigite um perfil correto, 113 ou 236.\n\n");}
}
}
else{}
}
return 0;
}