Ir ao conteúdo

Posts recomendados

Postado

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

 

Postado
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 ...

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!