funckja getline

0

Witam,

Wczytuje sobie dane z pliku w jakiejs funkcji, jednak chce powiedzmy wczytac tylko pierwsze 5 linijek, nastepnie wychodze z tej funkcji i ide do innej, po powrocie do tej pierwszej chcialbym aby wczytywania linni z pliku przy uzyciu getline bylo kontynuowane czyli jak wczytalem wczesniej linie od 1 do 5, to chcialbym zeby teraz wczytaly sie od 6 do 10,. funkcja getline jednak nie zapamietuje tego co wczytala i ponownie wczytywane sa linijki od 1 do 5 i tak po kazdym opuszczeniu funkcji w ktorej znajduje sie getline. Czy jest jakies rozwiazanie aby wczytywanie nastepowalo od miejsca w ktorym skonczylem?

0

Przekazywanie strumienia przez referencję, apap i dużo witamin. Proszę także pamiętać o ciepłym ubieraniu się.

0
Kolo56 napisał(a):

Witam,

Wczytuje sobie dane z pliku w jakiejs funkcji
,
jednak chce powiedzmy wczytac tylko pierwsze 5 linijek, nastepnie wychodze z tej funkcji i ide do innej, po powrocie do tej pierwszej chcialbym aby wczytywania linni z pliku przy uzyciu getline bylo kontynuowane
czyli jak wczytalem wczesniej linie od 1 do 5, to chcialbym zeby teraz wczytaly sie od 6 do 10,. funkcja getline jednak nie zapamietuje tego co wczytala i ponownie wczytywane sa linijki od 1 do 5 i tak po kazdym opuszczeniu funkcji w ktorej znajduje sie getline. Czy jest jakies rozwiazanie aby wczytywanie nastepowalo od miejsca w ktorym skonczylem?

0

Bullshit

0

Pewnie że można. Zapoznaj się z funkcjami tellg i seekp z klasy fstream.

0
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <iterator>
using namespace std;

namespace detail{
    template<typename StringType>
    struct line{ 
        using string_type = StringType;
        string_type data;
        friend istream &operator>>(istream &is, line<string_type> &l){
            return getline(is, l.data);
        }
        operator string() const{
            return data;
        }
    };
}

template<typename OutputIterator, typename DefaultLineType = detail::line<string>>
auto copy_n_lines(istream &is, size_t count, OutputIterator result){
	auto first = istream_iterator<DefaultLineType>(is);
	for(size_t i = 0; i < count && is; ++i){
		*result = *first;
		++result; ++first;
	}
	return result;
}

int main(){
	vector<string> lines;
	size_t i = 0;
	do{
		++i;
		copy_n_lines(cin, i, back_inserter(lines));
		for(const auto &line : lines)
			cout << line << endl;
		cout << endl;
		lines.clear();
	} while(cin);
	return 0;
}

Uruchomienie: http://ideone.com/o4WRM2
In:

Przeszły dżdże wiosny, zbiegło skwarne lato
I przykre miastu jesienne potopy,
Już bruk ziębiącą obleczony szatą,
Od stalnej Fryzów nie krzesany stopy.
Więzieni słotą w domowej katuszy,
Dziś na swobodne gdy wyjrzem powietrze,
Londyński pojazd tarkotem nie głuszy
Ani nas kręgi zbrojnymi rozetrze.
Witaj! narodom miejskim pora błoga,
Już i Niemeńców, i sąsiednich Lechów
Tu szuka ciżba, tysiącami mnoga,
Zbiegłych Dryjadom i Faunom uśmiechów.
Tu wszystko czerstwi, weseli, zachwyca,
Czy ciągnę tchnienie, co się zimnem czyści,
Czy na niebieskie zmysł podniosę lica,
Czyli się śnieżnej przypatruję kiści;
Jedna z nich pływa w niepewnym żywiole,
Druga ciężarem sporsza już osiadła;
Tą wiatr poleciał stwardniałe kryć role
Albo pobielić Wiliji źwierciadła.
Lecz kogo sioło dzisiejsze uwięzi.
Zmuszony widzieć łyse gór wiszary,
Grunt dziki, knieję nagimi gałęzi
Niesilną zimne podźwignąć ciężary -
Taki, gdy smutna ciągnie się minuta,
Wreszcie zmieniony kraj porzuca z żalem
I dając chętnie Cererę za Pluta,
Pędzi wóz ku nam ciężarny metalem.
Tu go przyjmują gościnne podwoje,
Rzeźbą i farbą odziany przybytek,
Tutaj rolnicze przepomina znoje
W pieszczonym gronie czarownych Charytek.
Na wsi, zaledwie czarna noc rozrzednie,
Każe wraz Ceres wczesny witać ranek,
Tu, chociaż słońce zajmie nieba średnie,
Śpię atłasowym pod cieniem firanek.
Lekkie nareszcie oblókłszy nankiny,
Modnej młodzieży przywoływam koło;
Strojem poranne zbywamy godziny
Albo rozmową bawim się wesołą.
Ten, w śniący kryształ włożywszy oblicze,
Wschodnim balsamem złoty kędzior pieści,
Drugi stambulskie oddycha gorycze
Lub pije z chińskich ziół ciągnione treści.
A kiedy chwila dwunasta nadbieży,
Wraz do śliskiego wstępuję powozu,
Sobol lub rosmak moje barki jeży
I suto zdobiąc nie dopuszcza mrozu.
Na sali, orszak przywitam wybrany,
Wszyscy siadają za biesiadnym stołem,
W kolej szlą pełne smaków porcelany
I sztucznym morzą apetyt żywiołem.
Pijemy węgrzyn, mocny setnym latem,
Wrą po kryształach koniaki i pącze,
Płci piękna gasi pragnienie muszkatem,
Co dając rzeźwość, myśli nie zaplącze.
A gdy się trunkiem zaiskrzą źrenice,
Dowcipne, czułe wszystkim płyną słowa,
Niejeden uwdzięk zarumieni lice,
Niejedna wzrokiem zapala się głowa.
Nareszcie słońce zniżone zagasło,
Rozsiewa mroki dobroczynna zima,
Boginie dają do rozjazdu hasło,
Zagrzmiały schody i już gości nié ma.
Którzy są z szczęściem poufali ślepem,
Pod twój znak idą, królu Faraonie.
Lub zręczni lekkim wykręcać oszczepem,
Pędzą po suknach wytoczone słonie.
A gdy noc ciemne rozepnie zasłony
I szklannym światłem błysną kamienice,
Młodzież, dzień kończąc wesoło spędzony,
Tysiączną sanią szlifuje ulice.

Out:

Przeszły dżdże wiosny, zbiegło skwarne lato

Już bruk ziębiącą obleczony szatą,
Od stalnej Fryzów nie krzesany stopy.

Dziś na swobodne gdy wyjrzem powietrze,
Londyński pojazd tarkotem nie głuszy
Ani nas kręgi zbrojnymi rozetrze.

Już i Niemeńców, i sąsiednich Lechów
Tu szuka ciżba, tysiącami mnoga,
Zbiegłych Dryjadom i Faunom uśmiechów.
Tu wszystko czerstwi, weseli, zachwyca,

Czy na niebieskie zmysł podniosę lica,
Czyli się śnieżnej przypatruję kiści;
Jedna z nich pływa w niepewnym żywiole,
Druga ciężarem sporsza już osiadła;
Tą wiatr poleciał stwardniałe kryć role

Lecz kogo sioło dzisiejsze uwięzi.
Zmuszony widzieć łyse gór wiszary,
Grunt dziki, knieję nagimi gałęzi
Niesilną zimne podźwignąć ciężary -
Taki, gdy smutna ciągnie się minuta,
Wreszcie zmieniony kraj porzuca z żalem

Pędzi wóz ku nam ciężarny metalem.
Tu go przyjmują gościnne podwoje,
Rzeźbą i farbą odziany przybytek,
Tutaj rolnicze przepomina znoje
W pieszczonym gronie czarownych Charytek.
Na wsi, zaledwie czarna noc rozrzednie,
Każe wraz Ceres wczesny witać ranek,

Śpię atłasowym pod cieniem firanek.
Lekkie nareszcie oblókłszy nankiny,
Modnej młodzieży przywoływam koło;
Strojem poranne zbywamy godziny
Albo rozmową bawim się wesołą.
Ten, w śniący kryształ włożywszy oblicze,
Wschodnim balsamem złoty kędzior pieści,
Drugi stambulskie oddycha gorycze

A kiedy chwila dwunasta nadbieży,
Wraz do śliskiego wstępuję powozu,
Sobol lub rosmak moje barki jeży
I suto zdobiąc nie dopuszcza mrozu.
Na sali, orszak przywitam wybrany,
Wszyscy siadają za biesiadnym stołem,
W kolej szlą pełne smaków porcelany
I sztucznym morzą apetyt żywiołem.
Pijemy węgrzyn, mocny setnym latem,

Płci piękna gasi pragnienie muszkatem,
Co dając rzeźwość, myśli nie zaplącze.
A gdy się trunkiem zaiskrzą źrenice,
Dowcipne, czułe wszystkim płyną słowa,
Niejeden uwdzięk zarumieni lice,
Niejedna wzrokiem zapala się głowa.
Nareszcie słońce zniżone zagasło,
Rozsiewa mroki dobroczynna zima,
Boginie dają do rozjazdu hasło,
Zagrzmiały schody i już gości nié ma.

Pod twój znak idą, królu Faraonie.
Lub zręczni lekkim wykręcać oszczepem,
Pędzą po suknach wytoczone słonie.
A gdy noc ciemne rozepnie zasłony
I szklannym światłem błysną kamienice,
Młodzież, dzień kończąc wesoło spędzony,
Tysiączną sanią szlifuje ulice.

Mickiewicz

3

Wersja w C++11/14 to raczej powinna użyć lambdy, ale jest późno, więc tylko krótka wersja (C++98):

#include <iostream>
#include <string>
using namespace std;

template<typename DataProcessor>
void scan_n_lines(istream &is, size_t count, DataProcessor proc) {
  string line;	
  while(count-->0 && getline(is, line))	
    proc(line);
}

void cout_processor(const string &s) {
	cout << s << "\n";
}

int main(){
	const size_t n = 5;
	do{
		scan_n_lines(cin, n, cout_processor);
	} while(cin);
	return 0;
}

http://ideone.com/mHRa7F

1 użytkowników online, w tym zalogowanych: 0, gości: 1