Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #define MAX 50
- typedef struct{
- char nome[MAX];
- long int cod;
- }Dados;
- typedef struct No{
- Dados *inf;
- struct No *prox;
- }No;
- typedef struct{
- int qtde;
- No *inicio;
- }Lista;
- //prototipos
- void inicia(Lista *listas);
- void carrega(Lista *listas);
- void insere(Lista *listas, int auxInt,char *auxNomeAlocado);
- Dados* buscaNome(Lista *listas, long int codigoBusca);
- void exibe(Dados *encontrado);
- void exibeTudo(Lista *listas);
- int main()
- {
- Lista listas;
- inicia(&listas);
- carrega(&listas);
- exibeTudo(&listas);
- long int codigoBusca;
- printf("\n\nQual o codigo de busca desejado? ");
- scanf("%ld",&codigoBusca);
- Dados *encontrado;
- encontrado=buscaNome(&listas,codigoBusca);
- exibe(encontrado);
- return 0;
- }
- void inicia(Lista *listas)
- {
- listas->qtde=0;
- listas->inicio=NULL;
- }
- void carrega(Lista *listas)
- {
- int auxInt;
- char auxChar[MAX], *nomeAlocado;
- FILE *fp = fopen("registros.txt","r");
- if(fp==NULL)
- printf("Erro ao abrir arquivo");
- while(fscanf(fp,"%ld %s",&auxInt,&auxChar) != EOF)
- {
- nomeAlocado=(char*)malloc(sizeof(auxChar));
- strcpy(nomeAlocado,auxChar);
- insere(listas,auxInt,nomeAlocado);
- listas->qtde++;
- }
- }
- void insere(Lista *listas, int auxInt,char *auxNomeAlocado)
- {
- Dados *aux;
- aux=(Dados*)malloc(sizeof(Dados));
- aux->cod=auxInt;
- strcpy(aux->nome,auxNomeAlocado);
- No *novoNo;
- novoNo=(No*)malloc(sizeof(No));
- novoNo->inf=aux;
- novoNo->prox=listas->inicio;
- listas->inicio=novoNo;
- }
- Dados* buscaNome(Lista *listas, long int codigoBusca)
- {
- int i;
- char *auxChar;
- No *aux = listas->inicio;
- for(i=0; i<listas->qtde; i++)
- {
- if(codigoBusca < aux->inf->cod){
- aux = aux->prox;
- continue;}
- else
- return aux->inf;
- }
- return aux->inf;
- }
- void exibeTudo(Lista *listas)
- {
- int i;
- No *aux= listas->inicio;
- for(i=0; i<listas->qtde;i++){
- printf("Codigo : %ld\tNome : %s\n",aux->inf->cod, aux->inf->nome);
- aux=aux->prox;}
- }
- void exibe(Dados *encontrado)
- {
- system("cls");
- printf("Resultado da Busca:\n\nCodigo : %ld\nNome : %s\n\n", encontrado->cod, encontrado->nome);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment