Se ho ben capito tu hai un file formato in questo modo:
codice:
0,1,2,3,4,5
6,7,8,9,10,11
12,13,14,15,16,17,18,19
Nel quale ogni riga contiene degli interi.
Il tuo problema è creare una struttura dati atta a contenerla...
Secondo me, il modo più semplice per utilizzarli è di creare un tipo di dato che consenta il parseraggio:
codice:
class Riga
{
/**@todo aumentare la sua complessità a seconda delle esigenze*/
private:
string _riga;
string _separatore;
vector<int> _values;
public:
Riga (string riga, string separatore = ",") {
this->_riga = riga;
this->_separatore = ",";
this->_parse ();
}
vector<int> getValues () {
return this->_values;
}
private:
void _parse () {
size_t start = 0;
size_t end = this->_riga.find_first_of (this->_separatore);
do {
this->_values.push_back (this->_charToInt(this->_riga.substr(start, end-start)));
start = end+1;
end = this->_riga.find_first_of (this->_separatore, start);
end = (end == string::npos) ? this->_riga.size() : end;
} while (start != end+1);
}
int _charToInt (string stringa) {
return atoi (stringa.c_str());
}
};
Notare il metodo parse che, partendo da una riga formattata nel seguente modo (dove ogni lettera è un intero):
codice:
"a,b,c,d,e,f,g,h,....,z"
"crea" un vector contenente gli interi che formano la riga.
Si potrebbe anche eseguire un overloading per consentire la stampa di questo nuovo tipo di dato...
...ad esempio:
codice:
ostream & operator << (ostream &os, Riga &riga) {
vector<int> temp = riga.getValues();
for (vector<int>::iterator i = temp.begin(); i != temp.end(); i++) {
os << *i << '\t';
}
os << endl;
return os;
}
A questo punto, leggendo il file riga per riga, si potrà creare un vettore di Riga:
codice:
vector<Riga> array;
fstream file ("file.txt", ios::in);
string riga;
while(getline(file, riga)) {
array.push_back(Riga(riga));
}
for (vector<Riga>::iterator i = array.begin(); i != array.end(); i++)
cout << *i;
Non so se il codice funziona correttamente (l'ho buttato giù su due piedi), in ogni caso, ti consiglio di prenderlo come spunto e implementare una tua versione ...
PS: Nel caso ti venisse più semplice potresti formattare la stringa in modo opportuno e leggere gli interi utilizzando stringstream (come se fosse explode di php).