    //
    //  You frequently need to read into an array using cin and you can't be
    //  sure how many values will be entered.  This means that you need to
    //  quit reading when all the data is read and you need to know how many
    //  values were read.  You also must avoid reading past the end of the
    //  array.  Generally the C++ compiler will allow you to use illegal
    //  array elements (index less than 0 or too big).  You will get a
    //  "segmentation violation" if your request is way off.  Minor indexing
    //  errors will just screw things up with no complaint from the
    //  computer.
    //
        int i;
        for ( i = 0; i < N; i++ ) {
            cin >> data[i];
            if ( cin.fail() ) break;
        }
    //
    //  After this loop the number of array elements read will be i.
    //  You could use cin.clear() after a failure to keep reading.
    //