![]() |
#2
rainbow12010-07-12 21:49
|

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
int sum = 0;
if(!cin.good())
{
cout<<"input bad!"<<endl;
exit(1);
}
int number;
while(1)
{
cin>>number;
if(cin.good())
{
sum += number;
}
else if(cin.eof())
{
break;
}
else
{
cin.clear();
string badtoken;
getline(cin, badtoken);
cerr<<"warning!"<<badtoken<<endl;
}
}
cout<<"sum is"<<sum<<endl;
return 0;
}
为什么我需要按2次ctrl+z才能结束,以前用到EOF也遇到过类似问题,这次提出来问问,求解!#include <fstream>
#include <string>
using namespace std;
int main()
{
int sum = 0;
if(!cin.good())
{
cout<<"input bad!"<<endl;
exit(1);
}
int number;
while(1)
{
cin>>number;
if(cin.good())
{
sum += number;
}
else if(cin.eof())
{
break;
}
else
{
cin.clear();
string badtoken;
getline(cin, badtoken);
cerr<<"warning!"<<badtoken<<endl;
}
}
cout<<"sum is"<<sum<<endl;
return 0;
}