while(!input.eof()) {
for (int i = 0; i < 256; ++i)
list[i] = 0;
Why are you resetting the array back to zero each time through the loop? You should only need to initialize the elements once, when you define the array. Also why is the array 256 characters in size?
By the way you could initialize the variable when you define it without the loop.
long list[256] {0};
1 2 3 4 5
for (int i = 32; i < 127; ++i)
{
if (list[i] > 0)
cout << "A vowel occured " << list[i] << " times." << endl;
}
Shouldn't you be doing this after the entry loop, not every time through the entry loop?
Where are you "totaling" any variables?
By the way in a C++ program you should use C++ style casts instead of the C style cast: