Ler Strings de Ficheiros em C

Status
Fechado a novas mensagens.

MACkie

Portugal@Home Member
Boas,

Preciso de saber qual a alma caridosa e conhecedora de Cê que me vai explicar como é que eu faço um "bloco de código" para que leia duas strings de um ficheiro. Para username e palavra passe.

Outros métodos aceitam-se.

Cumprimentos,
MACkie
 
Mas para verificar um valor especifico: comparando a sql, fazer algo parecido a "select password from login where username=$username"...

Ando aqui ás voltas com isto... :X

Cumps
 
Primeiro precisas de saber como estão dispostas as strings no ficheiro (se estão na mesma linha ou em linhas diferentes, se estão separadas por algum caracter, etc). Caso estejam na mesma linha, lês com a função fgets e depois tens de fazer parsing da string lida, retirando dela as 2 strings (username e password), guardando em 2 variáveis. Essas 2 variáveis vão então ser comparadas com o username e password introduzidos pelo user.
 
Primeiro precisas de saber como estão dispostas as strings no ficheiro (se estão na mesma linha ou em linhas diferentes, se estão separadas por algum caracter, etc). Caso estejam na mesma linha, lês com a função fgets e depois tens de fazer parsing da string lida, retirando dela as 2 strings (username e password), guardando em 2 variáveis. Essas 2 variáveis vão então ser comparadas com o username e password introduzidos pelo user.


O interessante é que eu não percebo um cú de C... isto é para ser executado tanto em linux como em windows, mas o servidor é linux, logo os ficheiros de username e password tem que tar no servidor...

Ando ás aranhas, não queria chumbar a Sistemas (IN)Operativos :x

Cumps
 
O interessante é que eu não percebo um cú de C... isto é para ser executado tanto em linux como em windows, mas o servidor é linux, logo os ficheiros de username e password tem que tar no servidor...

Ando ás aranhas, não queria chumbar a Sistemas (IN)Operativos :x

Cumps

epa tens de saber exactamente como está estruturado o ficheirode informação, se fores tu a escrever podes formata-lo com o fprintf e ler esse mesmo texto formatado com o fscanf
 
Mas sabes como estão organizadas as credenciais nos ficheiros?
Fazer SO sem saber C = serious business.

É triste mas... aqui na minha escola é Java, Java e mais Java... :S

A única vez que se dá C é em Linguagens de Programação em que, durante 4 meses ±, dás C, C++, C# e Python...

Enfim...

Se passar a SO pago uma rodada ao ppl da techzone :D LOL

Cumps
 
Queres código?
Código:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* getPassword(FILE* file, char* username)
{
    char current[21];
    char* password = (char*) malloc(101 * sizeof(char));
    int read;
    do {
        read = fscanf(file, "%20s %100[^\n]", current, password);
    } while(read > 0 && strcmp(current, username) != 0);
    if(read > 0)
    {
        return password;
    }
    else
    {
        free(password);
        return NULL;
    }
}
Suposições:

  1. Existe um utilizador por linha.
  2. O nome de utilizador não contém whitespace e é a primeira palavra da linha.
  3. A password vem na mesma linha do nome de utilizador, sendo estes separados por whitespace.
  4. O ficheiro está aberto para leitura e no início.
  5. O nome do utilizador tem no máximo 20 caracteres e a password 100.
Espero que ajude.
 
Última edição:
é simples, começas no "Hello, World." e nunca mais páras!
C programming ftw :)

Tens toda a razão. C é a base. Acho estranho dominares Java sem teres começado com C, deve-te ter custado um pouco... eu, por cá, para coisas simples uso sempre C. Quando são projectos grandes/complexo é que escolho a linguagem mais apropriada.

Ainda bem que te safaste. Boa sorte com essa aprendizagem!
 
Q4T!!

A cena fixe do C, é que podes fazer ponte para mais alto nível (tipo VB, uma vez que C será médio nivel -> apontadores) , ou podes fazer a ponte para mais baixo nível -> assembly

C é mesmo serious business

Na minha escola ensina-se Java ás "crianças"... A programação C é dada com mais 2 ou 3 linguagens num único semestre e na mesma disciplina... Parece que o Java é que tá a dar...

Cumps,
MACkie

PS: Já tou a aprender C# :x
 
Eu quando entrei na UA, dava-se pascal @ P1 e C @ P2... agora dá-se java nas duas...não concordo, visto que quando o pessoal chega a Arquitectura de Computadores, tem que dar C e assembly ao mesmo tempo, quando o C e apontadores e afins já deviam estar cimentados na cabeça à muito.
 
Status
Fechado a novas mensagens.
Back
Topo