• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Wczytanie danych z pliku do kontenera list

Object Storage Arubacloud
0 głosów
305 wizyt
pytanie zadane 4 stycznia 2017 w C i C++ przez Kasztan Dyskutant (8,080 p.)
zamknięte 5 stycznia 2017 przez Kasztan
	string b;
	string l;

	list<string> bolek;
	list<string> lolek;

	fstream first{ "bolek.txt" };
	fstream second{ "lolek.txt" };
	fstream third{ "bolilol.txt" };

	while (getline(first,b) && getline(second, l))
	{
		bolek.push_back(b);
		lolek.push_back(l);
	}

Chciałbym pobierać z plików txt linie i zapisywać je do kontenera list co robie źle ?

W debugerze program nawet nie wchodzi do pętli

dzięki z góry za pomoc

komentarz zamknięcia: Miałem problem z kompilatorem ale dziękuje wszystkim za aktywność

2 odpowiedzi

0 głosów
odpowiedź 4 stycznia 2017 przez playerony Pasjonat (15,240 p.)
Zmień nawiasy klamrowe na zwykłe i powinno działać. Proponowałbym dodać jakieś sprawdzanie czy plik został otwarty poprawnie.
komentarz 4 stycznia 2017 przez Kasztan Dyskutant (8,080 p.)
Nic mi nie wyrzuca, nie wiem mam problem z kompilaotrem pewnie
komentarz 4 stycznia 2017 przez playerony Pasjonat (15,240 p.)
Więc nie widzi twoich plików. Jakiego IDE używasz ?
komentarz 4 stycznia 2017 przez Kasztan Dyskutant (8,080 p.)
Visual studio
komentarz 4 stycznia 2017 przez playerony Pasjonat (15,240 p.)
Spróbuj wrzucić pliki *.txt do folderu Debug.
komentarz 4 stycznia 2017 przez Kasztan Dyskutant (8,080 p.)
nic nie dało

ogólnie nie mam problemów z takimi rzeczami dlatego na forum o tym napisałem

musi być problem z czymś innym
0 głosów
odpowiedź 4 stycznia 2017 przez operator Stary wyjadacz (10,920 p.)

Użyj:

ifstream file;
file.open("bolek.txt");

Potem dla dwóch plików w dwóch osobnych pętlach

while( !file.eof() ){
        file >> b; // b to string
        bolek.push_back( b );
} 

Powinno być ok.

komentarz 4 stycznia 2017 przez Kasztan Dyskutant (8,080 p.)
Po co ?
komentarz 4 stycznia 2017 przez operator Stary wyjadacz (10,920 p.)
Po jaj... Spróbuj ;)
1
komentarz 4 stycznia 2017 przez unknown Nałogowiec (39,560 p.)
Tak się nie powinno czytać danych z pliku. Nie powinno się używać metody eof jako warunek pętli wcztytującej dane z pliku(pomijając to, że autor chciał mieć w liście linijki a nie pojedyńcze słowa) Poza tym nie ma potrzeby wywoływania open, konstruktor po podaniu argumentów zrobi to za ciebie.
komentarz 5 stycznia 2017 przez operator Stary wyjadacz (10,920 p.)
"Nie powinno się używać metody eof jako warunek pętli wcztytującej dane z pliku" Pozwól, że poprawię: "Nie powinno się używać metody eof jako warunku końca pętli wczytującej dane z pliku." Dlaczego? Nie powinno się robić łatwo powiedzieć.

"Poza tym nie ma potrzeby wywoływania open, konstruktor po podaniu argumentów zrobi to za ciebie." Poza czy? To w sumie widzimisie programującego.
komentarz 5 stycznia 2017 przez unknown Nałogowiec (39,560 p.)

Dlaczego?

http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong

To w sumie widzimisie programującego.

Skoro tak to czemu kazałeś mu to zmienić?

komentarz 5 stycznia 2017 przez operator Stary wyjadacz (10,920 p.)

Jejku. Ja tylko chciałem pomóc. Sam mógłbyś się postarać i coś podpowiedzieć, a nie tylko oceniać. 

http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong

Doczytaj do końca :)

komentarz 5 stycznia 2017 przez unknown Nałogowiec (39,560 p.)

Ja tylko chciałem pomóc.

To fajnie, że chcesz pomagać.

Sam mógłbyś się postarać i coś podpowiedzieć

Mogłem, ale nie chciałem.

a nie tylko oceniać. 

Nigdzie nie oceniałem, tylko poprawiałem.

Doczytaj do końca :)

Doczytałem i nie zauważyłem nic ciekawego, chyba, że chodziło ci o to:

while( !(in>>std::ws).eof() ) {  
   int data;
   in >> data;
   if ( in.fail() ) /* handle with break or throw */; 
   // now use data
}    

ale raczej niezbyt to wygodne. Są lepsze sposoby(przedstawione w temacie).

komentarz 5 stycznia 2017 przez Kasztan Dyskutant (8,080 p.)
No zdecydowanie są lepsze sposoby

Podobne pytania

0 głosów
1 odpowiedź 512 wizyt
pytanie zadane 10 grudnia 2016 w C i C++ przez Kasztan Dyskutant (8,080 p.)
+3 głosów
3 odpowiedzi 974 wizyt
0 głosów
1 odpowiedź 98 wizyt
pytanie zadane 26 maja 2020 w C i C++ przez amtrax Dyskutant (9,630 p.)

92,536 zapytań

141,376 odpowiedzi

319,451 komentarzy

61,920 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...