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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.


Stary wyjadacz :P



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





Bicycle repairman






Na c sie nie znam, ale może to Ci pomoże.
string.h
strcat(s,t) concatenate t to end of s
Offline


Członek DUG
#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)
Offline


Stary wyjadacz :P



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




Pan inż. Cyc





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


Członek DUG
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)
Offline




Moderator Mamut
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
Offline


Członek DUG