Problem ist, dass der Iterator nicht durch die Schleife iteriert. Ich weiß nicht warum. #includes sind in der Kopfzeile, wie es meine Gewohnheit ist.Dieser Iterator iteriert nicht, was ist falsch?
#include "neutronFileReader.h"
using namespace std ;
neutronFileReader::neutronFileReader()
{
}
list<vector<float> > neutronFileReader::spectrum(char* filename)
{
ifstream fin(filename) ;
string binhi, binlo ;
list<vector<float> > neutronSpectrum ;
list<vector<float> >::iterator nS ;
vector<float> EnergyProbability ;
while(!fin.eof())
{
getline(fin, binlo, ' ') ; //get the binlo string
cout << "binlo: "<<binlo << endl ;
getline(fin, binhi, ' ') ; //get the binhi string
cout<<"binhi: "<<binhi<<endl ;
EnergyProbability.push_back(atof(binhi.c_str())+(atof(binhi.c_str()) - atof(binlo.c_str()))/2) ; //store middle of bin as emission Energy
getline(fin, binlo) ; //try not to waste memory space
cout<<"prob: "<<binlo<<endl ;
EnergyProbability.push_back(atof(binlo.c_str())) ; //store emnission probability
neutronSpectrum.push_back(EnergyProbability) ; //put the vector in the list
//cout<<neutronSpectrum<<endl ;
}
for(nS = neutronSpectrum.begin() ; nS != neutronSpectrum.end() ; nS++) //go through the neutron spectrum
{
EnergyProbability = (*nS) ;
cout << "binval: " << EnergyProbability[0] << " " << "binProb: " << EnergyProbability[1] << endl ;
cout << "binval: " << (*nS)[0] << ", binprob: " << (*nS)[1] << ", memadd: " << &nS << endl ; // print energy & prob to screen
}
return neutronSpectrum ;
}
wie auch immer, hier etwas Hilfe würde sehr geschätzt wird, hat es in eine while-Schleife bewegt, ja das ist alles Testen Fehler, aber es ist ein ziemlich wichtiges Stück Code. Prost Leute, lernt immer.
Haben Sie versucht, zuerst die Größe Ihrer Liste auszudrucken? Nur um sicherzustellen, dass Sie tatsächlich eine Liste zu durchlaufen haben :) –
was ist das Problem, kompiliert es nicht? stürzt es ab ?. Beschreibe die Situation ein wenig mehr, damit andere dir helfen können. – Reno
Was lässt Sie glauben, dass es nicht iteriert? –