[c++] filhantering
Hej!
Jag har nu i flera dagar försökt få till en funktion som ska läsa från min fil som jag exporterat ut från exel till .txt och sedan skicka informationen till en array.
informationen i filen ser ut så här.
2040
//Livsmedelsnamn Energi (kcal)(kcal) Protein(g) Fett(g) Kolhydrater(g)
Talg nöt 656 7 71 0
Späck gris 763 2,8 85 0
Ister gris 884 0 100 0
Kokosfett 884 0 100 0
Matfettsblandning havssaltat fett 80% berikad typ Bregott 712 0,5 80 0,5
Matfettsblandning fett 60% berikad typ Bregott mellan 543 1 60 2
mitt mål nu är att gör en funktion som läser filen, tar numret högst upp och sätter min forloop att snurra så länge, eftersom det är så många rader filen består av och så att min variabel nrOfElements får det värdet så jag kan göra forloops sen när jag tex ska visa innehållet i arrayen.
den andra raden livsmedel etc etc har jag bara tagit med så ni vet vad det handlar om, den ska jag inte ha i filen.
sen så ska den "getline" och skicka namnet, kcal, protein, fett o kolhydrater o skicka till min konstruktor.
Och allt som är en string ska skickas som en string och allt som är en int/double ska skickas som det för att jag ska kunna göra beräkningar senare. Det är så kallat "tab-delimited".
så här har jag gjort, men det funkar inte.
#include <fstream>
#include <sstream>
#include <iostream>
using namespace std;
int main()
{
string lm[2500];
ifstream ifs("livsmedel.txt");
int lines;
string input;
stringstream ss;
getline(ifs, input);
//cout<<input<<endl;
ss<<input;
ss>>lines;
istringstream buffer(lines);
//int antal;
//buffer >> antal;
for(int i=0; i<lines && !ifs.fail(); i++)
{
getline(ifs,input);
int antal;
int kcal;
double protein;
double fett;
double kolhydrat;
ss<<input;
ss>>kcal>>protein>>fett>>kolhydrat;
lm[i] =(kcal, protein,fett, kolhydrat);
}
for(int i=0;i<20;i++)
{
cout<<lm[i];
}
return 0;
}
Håller på o bli galen på denna så tacksam för all hjälp!