Ir ao conteúdo
  • Cadastre-se

Ler numero de um pré-definidos em um Arquivo


Eunice Michely

Posts recomendados

Sou nova aqui. E se não for muito abuso, gostaria de ajuda com esta questão em c.

 

Tenho que fazer um programa de banco que leia numeros de um arquivo e depois compare com o que a pessoa digitar. 

Exemplo: 
Tenho um arquivo no meu computador com 
Conta: 123 
Senha: 456 

No meu programa eu peço 
printf("Digite a conta e a senha"); scanf("%d", &conta); scanf("%d", &senha); 
Agora eu tenho que COMPARAR o que o usuario digitou com o que eu tenho no arquivo. 
COMO EU FAÇO ISSO?
Link para o comentário
Compartilhar em outros sites

@Eunice Michely

 

Talvez esse exemplo que eu fiz te ajude.

 

-> O código abaixo, ele abre um arquivo para leitura.

 

conta: 5432

senha: 123

 

-> Utiliza a função fscanf(), lendo do arquivo 2 números inteiros e descartando uma string %*s, que seria o "conta:" e "senha:"

-> Depois faz a comparação da conta e senha digitado pelo usuário, com os valores do arquivo.

#include <stdio.h>#include <stdlib.h>int main(){    int conta, senha, c, s;    FILE *arq;    arq = fopen("teste.txt", "r");    if (arq == NULL)    {        printf("\nErro");        return 1;    }    printf("Conta: ");    scanf("%d", &conta);    printf("senha: ");    scanf("%d", &senha);    fscanf(arq, "%*s %d", &c);    fscanf(arq, "%*s %d", &s);        if (conta == c && senha == s)    {        printf("\nConta e Senha corretos !\n");    }    else    {        printf("\nConta e/ou Senha  incorretos !\n");    }    fclose(arq);    return 0;}
Link para o comentário
Compartilhar em outros sites

@Eunice Michely

 

Não sei a finalidade desse programa e o seu conhecimento em C, mas ele ficaria melhor em uma struct.

ex:

typedef struct pessoa{    int conta;    int senha;    //etc}pessoa;

ps: Depois da uma pesquisada em structs em C.

 

[...]

 

Você pode simplesmente ler todas as linhas do arquivo usando um do-while.

ex:

//...      int cont = 0;  do    {        fscanf(arq, "%*s %d", &c); //armazena valor da conta em c        fscanf(arq, "%*s %d", &s); //armazena valor da senha em c        if (conta == c && senha == s) //compara conta e senha        {            cont = 1; //contador            printf("\nConta e Senha corretos !\n");            break; //sai do laço        }        }while (!feof(arq)); //funcao feof retorna 1 indicando fim do arquivo//...

Depois verifica se cont = 0, se for é porque senha/conta estão incorretos.

ex:

    //...        if (cont == 0)    {        printf("\nConta e/ou Senha  incorretos !\n");    }    //...
Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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