umm, well what you are talking about are logic errors, and yes there are ways to fix them. A user can enter an int when the program demands for a char, because an integer is a type of character. When a user enters a character instead of an integer, the program will just take the caracter and turn it into ANSII or whatever (So if i enter '@' instead of an int, the int really is holding the value 100, the ANSII character value of @). Umm you could just add a function to your program that checks to make sure the integer inserted isnt a character by creating a string and everytime the user inserts something, call the function, have it run through the string of all possible characters, and if what the user entered matches up with one of the characters, just make it print error or something...