Estou tentando fazer um programa que armazene dados num bloco txt e depois os acesso, Entretando estou tendo dificuldade em fazer a leitura desses dados como se fosse um banco de dados EX: quero no menu 1 ( case 1 ) o usuário escolha a opção de mulher que ele quer, ou seja, se ele escolher morena e depois olhos claros, quero que mostre pra ele apenas as mulhres com essas caracteristicas. Tb quero ordernar por ordem alfabetica mais ta confuso isso. Não preciso do código pronto só quero entender como faço isso. Obrigado desde já #include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
int main ()
{
typedef struct
{
char nome[15];
char cor_cabelo[10];
char cor_olho[15];
float valor_hora;
}dados;
system("color 1F");
FILE *garotas;
//Variaveis
int op=0, op2=0, op3=0, op4=0;
char *cor_cabelo;
char *cor_olho;
dados *mulher;
dados banco;
int n_garotas =0;
int troca, i,j;
//Menu
system("cls");
printf("\n\t\t\tNome Programa\n\n");
printf("\n[1] Procura Perssonalizada");
printf("\n[2] Cadastro de Garotas");
printf("\n[3] Listar todas as Meninas");
printf("\n[4] Sair\n");
printf("\n\n Digite a opcao desejada -> ");
scanf("%d", &op);
//Escolha de opção
switch (op)
{
case 1: garotas = fopen("garotas.txt", "r");
system("cls");
n_garotas=0;
while(!feof(garotas))
{
fscanf(garotas, "%d", &banco.nome);
fscanf(garotas, "%s", &banco.cor_cabelo);
fscanf(garotas, "%s", &banco.cor_olho);
fscanf(garotas, "%f", &banco.valor_hora);
n_garotas++; // conta quantos contatos tem
}
printf("%d garotas", n_garotas-1);
break;
case 2: garotas = fopen("garotas.txt", "a");
system("cls");
do {
system("cls");
printf("\n\t\t\tCadastro de Garotas\n");
printf("\nDigite o Nome da Garota: ");
fflush(stdin);
gets(banco.nome);
printf("Digite a Cor do Cabelo: \n");
printf("[1] Morena \n");
printf("[2] Loira \n");
printf("[3] Ruiva ");
scanf("%d", &op3);
// transformar o inteiro na String Respectiva.
if (op3 == 1);
cor_cabelo = "Loira";
if (op3 == 2);
cor_cabelo = "Morena";
if (op3 == 3);
cor_cabelo = "Ruiva";
printf("Cordo Olho\n [1] CLaro [2] Escuro: ");
op3 = 0;
scanf("%d", &op3);
if (op3 == 1);
cor_olho = "Olhos CLaros";
if (op3 == 2);
cor_olho = "Olhos Escuros";
//copiar os valores para a struct
strcpy (banco.cor_cabelo, cor_cabelo);
strcpy (banco.cor_olho, cor_olho);
printf("Valor Cobrado: ");
scanf("%f", &banco.valor_hora);
//Inserir os dados no TXT
fprintf(garotas, "\n%s %s %s %f", banco.nome, banco.cor_cabelo, banco.cor_olho, banco.valor_hora);
fclose(garotas);
printf("\nDeseja Cadastrar outra Cliente? [1] Sim e [2] não\n");
scanf("%d", &op2);
}while (op2 == 1);
main();
break;
}
printf("\n\n");
system("Pause");
return 0;
}