Ir ao conteúdo
  • Cadastre-se
RenanMaia

C Problema com fgets como parâmetro para um while!

Recommended Posts

Olá,

   Estou fazendo um código que recebe um cpf, procura no arquivo .txt um cpf que seja igual e mostre os dados do dono do cpf!

Mas estou com um problema na hora de ler o arquivo! Eu coloco o fgets para ler o arquivo como parâmetro do loop while, e dentro do bloco loop eu faço os paranauê  pra conseguir achar o cpf que seja igual e depois que acabar o loop (quando achar o cpf) eu peço pra mostrar os dados. o problema é que não está dando certo, na hora em que eu compilo e rodo o programa aparece apenas a primeira linha do arquivo e mais algumas em branco! Agora eu estou em duvidá se quando eu coloco o fgets como parâmetro do while para ler o arquivo, se ele primeiro lê o arquivo inteiro e depois roda o que esta dentro do loop ou se a cada linha lida (que é o que eu espero q seja) ele roda o loop!

 

sou novo em programação me desculpem se isso for um erro muito grosseiro! vou deixar um trecho do código aqui! Obrigado desde já

 

edit: acabei de fazer um teste e percebi que o bloco if nao está rodando!

system("cls");

                                conta_cliente--;
                                puts("==============================");
                                puts(" PRESTADORA DE SERVICOS ");
                                puts("==============================");
                                puts("     PESQUISAR CLIENTES      ");
                                puts("----------------------------------");
                                printf("Digite o CPF do cliente (incluindo pontos e traco): \n");
                                fflush(stdin);
                                scanf("%s", ler_cpf);

                                cliente_file[conta_cliente] = fopen("clientes\\client.txt", "r");

                                if (cliente_file[x] == NULL)
                                {

                                }

                                struct pesquisa_cliente bloco[200];
                                x = 0;
                                while(fgets(ler_cadastro, 5000, cliente_file[conta_cliente]) != NULL)
                                {
                                    x++;
                                    strcpy(bloco[x].pesquisa, ler_cadastro);
                                    if(strcmp(bloco[x].pesquisa, ler_cpf))
                                    {
                                        break;
                                    }

                                }

                                for(i = 0; i <= 4; i++)
                                {
                                    printf("%s\n", bloco[x].pesquisa);
                                    x--;
                                }

                                fclose(cliente_file[conta_cliente]);


                                conta_cliente++;
                                system("pause");

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 horas atrás, RenanMaia disse:

cliente_file[conta_cliente] = fopen("clientes\\client.txt", "r");

 

15 horas atrás, RenanMaia disse:

if (cliente_file[x] == NULL)

Essa duas sentenças estão certas se x é igual conta_cliente. 

Sem documentação fica difícil ler, pois o natural seria testar o status do arquivo com mesmo índice que se usa para abrir.

 

O melhor é você dar explicações,

Um exemplo de linha de dentro do arquivo,

E a definição das estruturas.

 

Vou parar por aqui.

 

Aguadando ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×