Re: Problem in C++ program
bazymew@gmail.com wrote:
I'm new to C++(I've only started learning about a month ago), so
please don't call me stupid for asking a dumb question.
Good luck with learning.
You see I was experimenting with Exception operators, trying to
make a program not lock up or quit right away when you enter a non
integer value.
It's always a good idea to validate input. However C++ doesn't work just
like you expect. An int variable is still an int variable even though your
input failed, and that's what C++ would look for.
Now, even if you enter an integer value, it says to
enter an integer value. I hadf it set up so that the second time you
enter a non integer value, it quits. Now, the second time you enter
any value, it quits. Here's a section of the source code:
cin >> integer;
What's integer? That is: How is it defined?
int integer?
std::string integer?
try
{
throw integer;
}
catch (int ncn)
If integer is defined as:
int integer;
this would work, and set ncn to the value of integer. This happens even if
the input failed.
{
name = new char[ncn];
The name name suggests that name should be a string. You should look up the
std::string class. Doesn't your book/teacher explain it?
}
catch (...)
If integer is defined as anything but int, this would happen.
{
cout << "Please enter an integer value.\n" << "If you enter a non
integer value a second time, the program will end.";
cin >> integer;
try
{
throw integer;
}
catch (int ncn)
This could never happen.
{
name = new char[ncn];
}
catch (...)
{
return (0);
}
}
--
rbh