Vister26 Temat założony przez niniejszego użytkownika |
[C++] Wczytywanie danych, fstream » 2013-11-04 22:07:11 Hej, być może coś pominąłem w poradniku do fstream'a, ale nie mogę zrozumieć jak wczytać z pliku następujące dane Jak to zrobić aby program wczytał wyraz do zmiennej z 4 linijki pliku config.txt? Da się to w ogóle zrobić, bo chciałem aby mój config wyglądał jak taki pseudokod? |
|
den93 |
» 2013-11-04 22:20:47 Oczywiście, że się da :). Naskrobałeś już coś? Czy nie wiesz jak zacząć? |
|
Vister26 Temat założony przez niniejszego użytkownika |
» 2013-11-04 22:29:28 Wiem, że muszę przesunąć wczytywanie do czwartej linijki a następnie zacząć wczytywanie ale nie z całej linijki. A nie mam pojęcia jak zrobić to "przesunięcie". Nie wiem też czym wczytać te dane bo wszystkie funkcje, które są w kursie pobierają całą linię. |
|
Wasilek |
» 2013-11-04 22:46:39 |
|
den93 |
» 2013-11-04 22:57:03 No tak, pobierasz całą linie z pliku do bufora (pamięci), np. do std::string lub tablicy znaków i dopiero wtedy wykonujesz określone operacje, przesunięcia itp. ale już na danych w pamięci (tak jest szybciej i wygodniej; czyli bez odpowiedniego algorytmu, funkcji się nie obędzie, bo std::fstream zawiera tylko podstawowe rzeczy, nie do tego to służy). 1. Umiesz operować na stringach? Znasz podstawowe funkcje? 2. Czemu ci tak zależy na tej czwartej linijce :P 3. W tym pliku każda dana jest zapisana w takiej postaci: klucz = "napis" ? 4. Czy 'klucz' jest ci do czegoś potrzebny? 5. Wiesz co to jest std::map? Może podaj trochę więcej informacji, bo tak to ogólnie napisałeś, że nie wiem co konkretnie chcesz osiągnąć. |
|
ktos-tam |
» 2013-11-05 17:24:30 Jaki masz problem wczytaj całą linijkę, a później wybierz, co ci potrzebne, a resztę wywal(find). |
|
Vister26 Temat założony przez niniejszego użytkownika |
» 2013-11-05 17:43:40 @den93: 1.Tak 2.To może być nawet w 20 linijce, tutaj dałem taki przykład z mojego aktualnego configu ;) 3.Póki co, tak. 4.Nie te dane mogą być nawet zapisane w kolejnych linijkach czyli np: ale ja chciałem aby ten plik zawierał komentarze i pseudo-przypisywanie wartości, aby lepiej wyglądał i był zrozumiały też dla innych. 5.std::map jeszcze nie widziałem, ale poczytam. Wzorując się na odpowiedzi Buby w tym temacie napisałem coś takiego (na przykładzie IP bo jego wczytanie sprawia mi problem):
ifstream plik; plik.open( "config.txt" ); plik.seekg( 4 ); char IPBuffer[ 20 ]; plik >> IPBuffer; char * IP;
plik.close(); return 0;
Nie kompilowałem tego jeszcze i nie wiem czy będzie to działać. Już właściwie wszystko wiem oprócz tego zapisu z bufora (stringa) do char * IP. |
|
pekfos |
» 2013-11-05 17:47:09 Nie będzie działać. To tak nie działa. Jak wyżej. Do tego nawet nie potrzeba pętli. Dlaczego musi być we wskaźniku? W takiej formie przyjmuje to funkcja, do której chcesz to podać? To też tak nie działa. |
|
« 1 » 2 |