Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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");

 

Editado por RenanMaia

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

Editado por AnsiC

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






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

×