Hi,

i accidentally given input as character for a integer variable.....then the program went crazy and just flooded the console.....

so, is there any way to handle this exception......and how to achieve that

thank you

You corrupted your input stream, you need to reset it and remove the offending char(s).
You will need to use ios::good() or ios::fail() to detect the stream corruption. You will then have to use ios::clear() to reset the stream. Then you will need to use istream::ignore() to "throw away" the bad input.

you have to check for error, and if it occurs clear the input buffer

See this thread about how to clear the input buffer.

#include <iostream>
#include <limits>
using std::cin;
using std::cout;

int main()
{
    int c;
    while(true)
    {
        cout << "Enter a number\n";
        cin >> c;
        if( cin.fail() )
        {
            cout << "Oops!\n";
            cin.clear();
            cin.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' );
        }
        else
            break;
    }
}

you have to check for error, and if it occurs clear the input buffer

See this thread about how to clear the input buffer.

#include <iostream>
#include <limits>
using std::cin;
using std::cout;

int main()
{
    int c;
    while(true)
    {
        cout << "Enter a number\n";
        cin >> c;
        if( cin.fail() )
        {
            cout << "Oops!\n";
            cin.clear();
            cin.ignore ( std::numeric_limits<std::streamsize>::max(), '\n' );
        }
        else
            break;
    }
}

thank you very much friend......it's perfectly working

You corrupted your input stream, you need to reset it and remove the offending char(s).
You will need to use ios::good() or ios::fail() to detect the stream corruption. You will then have to use ios::clear() to reset the stream. Then you will need to use istream::ignore() to "throw away" the bad input.

okay....i got it.......thank you

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.