_
ich hab das grad ma probiert, und das geht, vorraussetzung ist, dass die datei test.txt genau nach deinen vorgaben aufgebaut ist, also mit semikolon getrennt
#include <string>
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
struct Datensatz
{
string vorname,nachname;
int eins,zwei,drei;
Datensatz(string v,string n,int a,int b,int c):vorname(v),nachname(v),eins(a),zwei(b),drei(c){}
};
ostream&operator<<(ostream&os,Datensatz a)
{
os << a.vorname << ' ' << a.nachname << ' ' << a.eins << ' ' << a.zwei << ' ' << a.drei;
return os;
}
typedef vector<Datensatz > Liste;
int main()
{
string line;
string vn,nn; //vorname, nachname
int a,b,c; //die drei zahlen
int tmp=0;
ifstream ein("test.txt");
Liste liste;
//einlesen der datei
while(ein>>line)
{
vn=line.substr(0,tmp=line.find(';')); //vorname
line=line.substr(++tmp,line.size());
nn=line.substr(0,tmp=line.find(';')); //nachname
line=line.substr(++tmp,line.size());
a=atoi(line.substr(0,tmp=line.find(';')).c_str()); //erste zahl
line=line.substr(++tmp,line.size());
b=atoi(line.substr(0,tmp=line.find(';')).c_str()); //zweite zahl
line=line.substr(++tmp,line.size());
c=atoi(line.c_str()); //dritte zahl
liste.push_back(Datensatz(vn,nn,a,b,c)); //in vector speichern
}
//ausgabe der datei
for(Liste::iterator it=liste.begin();it<liste.end();++it)
{
cout << *it << endl;
}
return 0;
}
...jaja, es gibt noch andere möglichkeiten, ist aber eine lösung
...hehe, und doch mit strings
mfg