Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-10-02 20:04:40

  szewczyk - Stary wyjadacz :P

szewczyk
Stary wyjadacz :P
Zarejestrowany: 2006-12-03

[c] pobieranie danych z pliku

Witam
bawie sie z C od nie dawna i mam problem (umiem otworzyc plik ,pobrac linie i znaki ) niewiem jak obrać dane z pliku do zmiennych np w pliku mam :

login = jakis
haslo = jakies

i chce to pobrać do zmiennych char w C ,i tu juz mam zastuj od 2 dni i nijak mi to idzie :(

Offline

 

#2  2008-10-02 20:45:34

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: [c] pobieranie danych z pliku

Na c sie nie znam, ale może to Ci pomoże.
string.h

strcat(s,t)  concatenate t to end of s


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#3  2008-10-02 20:47:11

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: [c] pobieranie danych z pliku

Kod:

#include <stdio.h>
#include <string.h>

int main() {
    char opt[10], val[10];
    int ret; 
    FILE *fp = fopen("plik.conf", "r");

    if ( !fp )   
        return 1;

    ret = 0;
    while ( ret != EOF ) {
        memset(opt, 0, sizeof(opt)/sizeof(*opt));
        memset(val, 0, sizeof(val)/sizeof(*val));

        ret = fscanf(fp, "%10s = %10s\n", opt, val);
        if ( strlen(opt) == 0 || strlen(val) == 0 )
            continue;

        printf("Opcja: %s\nWartosc:%s\n\n", opt, val );
    }

    fclose(fp);
}

Format pliku konfiguracyjnego:
opcja = wartosc

Nie jest to najlepsze rozwiązanie, ale zdecydowanie najprostsze. I działa :P

Ostatnio edytowany przez urug (2008-10-02 20:53:20)


Pozdrawiam, Tomek

Offline

 

#4  2008-10-02 21:44:27

  szewczyk - Stary wyjadacz :P

szewczyk
Stary wyjadacz :P
Zarejestrowany: 2006-12-03

Re: [c] pobieranie danych z pliku

urug - Dzieki !!! działa swietnie :)) .pozdrawiam

Offline

 

#5  2008-10-03 09:46:27

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: [c] pobieranie danych z pliku

urug: to jest najprostrze? ;D
Sam scanf to jest najprosciej :P

Offline

 

#6  2008-10-03 20:12:43

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: [c] pobieranie danych z pliku

sam scanf nie potrafi odczytać bezpośrednio ze strumienia (FILE), także nie przyda się na wiele. A prawdę mówiąc, patrzę na to teraz i nie przychodzi mi do głowy łatwiejsze rozwiązanie. Można za pomocą read/fgets to zrealizować równie dobrze, ale już wtedy parsowanie tego ciągu spada na nas. W każdym razie jestem zwykłym amatorem - 99% możliwości mi umyka :P

Ostatnio edytowany przez urug (2008-10-03 20:13:34)


Pozdrawiam, Tomek

Offline

 

#7  2008-10-04 22:54:44

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: [c] pobieranie danych z pliku

prosciej i chyba ladniej byloby zrobic do/while (wtedy tez nie trzeba ustawiac ret przed petla)

pozatym te memsety nie sa potrzebne - zgodnie z dokumentacja wstawione do tych tablic napisy beda automatycznie terminowane nullem wiec i pomiar dlugosci i wypisanie zadzialaja ok ... jezeli cos (nie wiem jak scanf zachowuje sie gdy nie dopasuje) to tylko na poczatku (zaraz po deklaracji) mozemy zerowemu elementowi tych tablic przypisac null


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#8  2008-10-04 22:56:38

  urug - Członek DUG

urug
Członek DUG
Skąd: Częstochowa
Zarejestrowany: 2008-04-22
Serwis

Re: [c] pobieranie danych z pliku

Rzekłeś :-)


Pozdrawiam, Tomek

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)