I'm having a similar problem and submitted following solution. When I ran it on http://ideone.com/22 it worked fine but still SPOJ saying it as wrong answer
Please correct me if anything wrong in my solution.
compiled with C++ 5.1
int main() {
int i;
std::cout<<"Enter your input number (42 is for exit)"<<endl;
do
{
std::cin>>i;
if( std::cin.fail() )
{
std::cout<<"Wrong input, numeric numbers only accepts"<<endl;
}
else
{
std::cout<<i<<endl;
}
}while(42 != i);
std::cout<<"Successfully exiting"<<endl;
return 0;
}