i Accelerated c++; cin - hvordan stopper den?

Tags:    programmering

Hej, jeg er ved at lære c++ fra den bog der hedder Accelerated c++ som jeg i øvrigt synes er fremragende. Men når jeg kører et program
der er beregnet til at udregne studenters karakterer, kan jeg ikke gennemskue hvordan jeg i run-time skal fortælle programmet at jeg er færdig med at indtaste data? Det går sådan her:

I main kaldes funktionen

while (read(cin, record)) {...}

read er implementeret således:

istream& read(istream& is, Student_info& s)
{
is >> s.name >> s.midterm >> s.final;

read_hw(is, s.homework);
return is;
}

istream& read_hw(istream& in, vector<double>& hw)
{
if (in) {
hw.clear();

double x;
while (in >> x)
hw.push_back(x);

in.clear();
}
return in;
}

Såvidt jeg kan se er problemet, at in.clear() renser input streamen - man er nødt til at lave en end-of-file (enter ctrl+z) for at vise at man er færdig med at fylde hw vectoren - så når jeg er færdig med at indtaste alle record, hvordan kan jeg så vise det?



3 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Så vidt jeg lige kan se burde du kunne løse problemet her:
Fold kodeboks ind/udKode 


Så skal brugeren trykke Ctrl+Z når der spørges på navn.



Så vidt jeg lige kan se burde du kunne løse problemet her:
Fold kodeboks ind/udKode 


Så skal brugeren trykke Ctrl+Z når der spørges på navn.


Hej, 1000 tak for dit hurtige svar. Det føles som med en skakopgave, 100% enkelt og oplagt når man først har set det, men ikke så nemt (for mig) at få øje på. Du samler ikke på point?



Nej, jeg samler ikke på point. Mine svar er gratis.



t