Please use code blocks. It's very easy, just type [ code ] before the code, and [ /code ] after (without the spaces).

Also half an idea...ellipses...hard to follow..also half a wo..not easy. Try to use complete words and sentences as it means people don't have to re-read your post about 20 times to work out what you're on about.

Obviously it's up to you how you determine whether or not a particular input is numeric. What you could do in the conversion function is to check if each character is appropriate for a number then throw an exception if it isn't.

I've heard of isdigit() which tests a single character. I don't know a function called isnumber() but that doesn't mean such a function doesn't exist.

Try to use char constants rather than ASCII values. x>47 && x< 58 might mean the same as x>='0' && x<='9' but the latter is a lot more readable, and is portable to other architectures where '0' is not necessarily 48. isdigit() is better still, because it works off a table and looks up the individual character code in the table to see whether or not it's a digit, so this is portable to architectures where '0'~'9' are not consecutive.

Your loop doesn't need to scan the whole string, you could just bail out when you find the first non-digit:
for (int i=0; i<s.length(); i++)
  if (isdigit(s.c_str))
    throw "not a number"; // or just return 0;
return 1;