Wczytywanie danych z pliku txt

0

Witam
Mam problem z odpowiednim wczytaniem danych z pliku tekstowego, jest to baza danych o polach ID, Imie, Srednia.
Próbuję wczytać te dane do listy jednokierunkowej, jednak główny problem polega na tym, że przy pomocy funkcji getline odczytuje same znaki, natomiast chciałbym aby ID i srednia były wpisane kolejno do pól typu int i double. Jakim narzędziem będzie najlepiej się posłużyć aby odczytać liczby?

0

Użyj strumieni i operatora >>:

#include <iostream>
#include <string>
 
int main() {
  unsigned int id;    
  std::string imie;
  double srednia;
  
  while(std::cin >> id >> imie >> srednia) {
    std::cout << id << " to " << imie << " ma srednia " << srednia << '\n';      
  }
  
  return 0;
}

http://ideone.com/Mr0ZXy

Operacje na plikach wyglądają identyczne. Nie podałeś dokładnego formatu tych danych, więc konkrety trudno podać.

0

Dane zapisane mam w formacie ID \t Imie \t Srednia

Napisałem funkcję wczytującą dane:

 	

        string rekord;
	baza.open("baza.txt", ios::in | ios::binary );
	if( baza.good() == false ) cout << "Wystapil problem z otwarciem pliku";
	while(!baza.eof())
	{
				getline(baza, rekord, '\t');
				wpis.id = rekord;
				getline(baza, rekord, '\t');
				wpis.Imie = rekord;
				getline(baza, rekord, '\t');
				wpis.Srednia = rekord;
	}
		
	baza.close();

Jednak funkcja getline pobiera wartosci id i sredniej jako tekst.

0

Skoro separatorem są tabulatory to kod, który napisałem wyżej zadziała. Dostosuj go do Twoich potrzeb.

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