P
ok ich habe es. Ich kann jetzt den vector "bdata" vom Typ "Blood" mit den Werten füllen und auch wieder ausgeben.
#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>
using namespace std;
struct Blood {
string date;
int sys;
int dia;
int pul;
Blood(string d, int s, int di, int p)
:date(d),sys(s),dia(di),pul(p){}
};
int main()
{
char qm1;
char day1;
char day2;
char pt1;
char monthch1;
char monthch2;
char pt2;
int year;
char hyphen1;
char hourch1;
char hourch2;
char colon1;
char minutech1;
char minutech2;
char qm2;
char semic;
char qm3;
int sys;
char mmhg1;
char mmhg2;
char mmhg3;
int dia;
char qm4;
char semic2;
char qm5;
char qm6;
char mmhg4;
char mmhg5;
char mmhg6;
char mmhg7;
char qm7;
char semic3;
char qm8;
int pul;
ifstream file("Messwerte_Blutdruck_17-3-16.csv");
if(!file) cout << "ERROR !file" << endl;
string dummy;
for (int i=0;i<22;++i){ // discard top non data lines
getline(file,dummy);}
string str;
vector<Blood> bdata;
int i = 0;
while (getline(file,str)) {
// cout << str << endl;
stringstream ss(str);
while (ss >> qm1 >> day1 >> day2 >> pt1 >> monthch1 >> monthch2 >> pt2 >> year >> hyphen1 >> hourch1 >>
hourch2 >> colon1 >> minutech1 >> minutech2 >> qm2 >> semic >> qm3 >> sys >> mmhg1 >>
mmhg2 >> mmhg3 >> qm4 >> semic2 >> qm5 >> qm6 >> dia >> mmhg4 >> mmhg5 >> mmhg6 >>
mmhg7 >> qm7 >> semic3 >> qm8 >> pul){
++i;
stringstream ssdate;
ssdate << day1 << day2 << '.' << monthch1 << monthch2 << '.' << year << '-' << hourch1 << hourch2 << minutech1 << minutech2;
string sa2 = ssdate.str();
bdata.push_back(Blood(sa2,sys,dia,pul));
}
}
cout << "vector content:" << endl;
for (unsigned int i=0;i<bdata.size();++i){
cout << bdata[i].date << ',' << bdata[i].sys << ',' << bdata[i].dia << ',' << bdata[i].pul << endl;
}
return 0;
}
output:
vector content:
25.06.2015-1914,104,68,72
25.06.2015-2127,104,75,67
26.06.2015-0803,114,71,67