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
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;
}
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.