Jak odczytac z pliku cala linie zamiast po wyrazach

0

Mam cos takiego:

	std::string in="",out;
	struct _stat buf;
	vector <string> ciag;
	int result, rozmiar=0;
	int polozenie=0;
	ifstream plik;

	plik.open("C:\\my_file.txt");
	result=_stat("C:\\my_file.txt", &buf);
	rozmiar=buf.st_size;
	while (polozenie!=rozmiar)
	{		
		plik>>in;
		ciag.push_back(in);
		polozenie=plik.tellg();
	}
	plik.close();

Jak odczytac cala linijke z pliku zamiast od spacji do spacji, a najlepiej jak odczytac caly plik do jednego stringa. Wiem ze mozna czytac z pliku za pomoca innych funkcji, ale to ma byc zrealizowane przy pomocy "open" (tylko i wylacznie... inne nie wchodza w gre). Konkretnie to chodzi o to ze odczytujac nie wiem w ktorej jestem linijce, (moze jest jakis znacznik dzieki czemu wiadomo co minalem: spacje czy enter)

0

plik>>in;
jakoś widzę, że czytasz inną funkcją niż open...
wiec zdecyduj się czy ma być tylko i wyłącznie open.
tak na marginesoie open jak sama nazwa mówi otwiera a nie czyta, więc nie wiem jak chcesz czytać wykorzystując wyłacznie funkcję open.
a tak w ogóle to poczytaj sobie o getline

0

Ehh ludzie C sie klania:

fscanf(plik,"%[^\n]",buf);

0

Ehh cepa... nie wiem czy wiesz ale fscanf czyta z pliku.... a w moim przypadku "plik" jest strumieniem (fakt ze nazwa jest mylaca). Ale Anonim ma racje... pokombinuje z getline, chociaz slyszalem ze moga z nim byc problemy pod VC

Ha!!
getline(plik,in,'\n');
oto rozwiazanie... dzieki Anonim!!

0

A hehe nie patrzylem na to co wyzej :D

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