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?

spartanPAGE
  • Rejestracja:około 12 lat
  • Ostatnio:około 21 godzin
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

LI
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 10 lat
  • Postów:19
0

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

spartanPAGE
  • Rejestracja:około 12 lat
  • Ostatnio:około 21 godzin
0
Kopiuj
#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:

Kopiuj
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:

Kopiuj
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

edytowany 4x, ostatnio: spartanPAGE
Zobacz pozostałe 6 komentarzy
satirev
tak i nie zarazem, bo imho taki feature jest możliwy do drożenia w przyszłości ale do mocno zmienia reguły template type deduction
spartanPAGE
Kto wie co przyniesie przyszłość ;) Osobiście sądzę, że jakieś kroki mniej lub bardziej drastyczne wobec szablonów powinny zostać podjęte
satirev
Ja wiem co przyniesie przyszłość, bo śledzę grupę dyskusyjną future proposals i czytam w miarę regularnie propozycje standaryzacyjne ; p + czasami coś sam zaproponuję ; D
spartanPAGE
Mi się zdarza sporadycznie ;) Daj znać, gdy jakiś twój proposal wejdzie w życie :)
satirev
Haha spoko ; p
vpiotr
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
3

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

Kopiuj
#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

satirev
Skąd przekonanie, że jak C++1z to trzeba używać lambd?
vpiotr
Nie przekonanie że trzeba, tylko moje feng shui. Pewnie lepiej by wyglądało na forach pro-1z.
satirev
Imho to nie prawda
vpiotr
Dobry kod to czytelny i krótki kod. Ten tutaj w wersji 1z (gdybym chciał pokazywać swoją znajomość C++11) zrobiłbym z lambdami (ale bez przekonania).
satirev
@vpiotr a co jest nieczytelne w Twoim kodzie? Lambdy są dobre tam gdzie potrzeba zdefiniować jakąś funkcjonalność "w miejscu". Tutaj od biedy by można zrobić to dla funkcji count_processor ale nie jest must have.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.