求教 while(cin>>buf) value(buf)++; 怎样才能退出循环?
在TC++PL的第五章看到一个程序.执行的时候却怎么也退不出while循环.请高手赐教.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct Pair
{
string name;
double val;
};
vector <Pair> pairs;
double& value(const string & s)
{
for (int i=0; i <pairs.size(); i++)
{
if (s==pairs[i].name)
{
return pairs[i].val;
}
}
Pair p={s,0};
pairs.push_back(p);
return pairs[pairs.size()-1].val;
}
int main()
{
string buf;
while(cin> > buf) value(buf)++;
for (vector <Pair> ::const_iterator p=pairs.begin(); p!=pairs.end(); ++p)
{
cout < <p-> name < < ": " < <p-> val < < "\n ";
}
return 0;
}
[解决办法]
Linux,Unix下Ctrl+D
Windows下Ctrl+Z.
C++ Primer第一章就讲了.