[C++] Wczytywanie lini z dokumentu .txt
Ostatnio zmodyfikowano 2015-06-23 14:47
SangalnteX Temat założony przez niniejszego użytkownika |
[C++] Wczytywanie lini z dokumentu .txt » 2015-06-12 20:19:38 Witam
Potrzebuje napisać program który wczyta mi tylko jedną linijkę z dokumentu .txt. Dokładniej chodzi o to, że mam 50MB plik tekstowy, którego wczytanie całego do programu trwało by trochę długo. Na plikach tekstowych nigdy nie pracowałem, dlatego chciałbym się dowiedzieć czy istnieją funkcje które: 1. Poda ilość linijek w dokumencie. 2. Wczyta tylko linijkę o danym numerze do stringa.
Z góry dziękuje za odpowiedz |
|
stevy |
» 2015-06-12 22:33:04 nie słyszałem o takiej funkcji ale możesz zastosować getline: int liczba = 0; while( !twoj_plik.eof() ) { std::getline( plik, jakis_string ); liczba++; }
|
|
SangalnteX Temat założony przez niniejszego użytkownika |
» 2015-06-12 22:45:12 Do kodu który podałeś cały plik musi być wczytany do programu, czy to wczyta tylko jedną linijkę?
|
|
stevy |
» 2015-06-13 00:08:17 załadowany zostanie cały. Czytałem gdzieś że można jakoś załadować tylko fragment, ale nie sądzę, żeby było to dobre rozwiązanie. Mógłbyś rozdzielić ten plik na kilka i ładować resztę, gdy będzie do konieczne |
|
pekfos |
» 2015-06-23 14:47:14 1. Poda ilość linijek w dokumencie. |
Najlepsze rozwiązanie, to wczytywanie pliku blokami i liczenie znaków nowej linii. 2. Wczyta tylko linijkę o danym numerze do stringa. |
Jak wyżej. Po odliczeniu n linii, kolejną kopiujesz do stringa i ewentualnie doczytujesz z pliku resztę, jeśli linia kończy się z końcem bloku. To najszybsze rozwiązanie, ale przy tym najtrudniejsze w implementacji (co nie znaczy trudne). Możesz wszystko puszczać przez getline() jeśli chcesz mieć łatwo, na przykład jak w kodzie podanym wyżej, tylko po poprawieniu błędów. |
|
« 1 » |