A game that I play, Conquest, occasionally crashes because of some bad input, so I ported it from Borland C to Visual C++ to compile and debug it. Some minimal changes required were:
- Use double instead of float types.
- Reimplemented clrscr() and gotoxy() functions using Windows Console functions.
- Change function names in proto.h: _cprintf(), _getch() and _putch().
In the VC++ debugger, I found that the problem occurs in the get_token() function, which parses the user's input. For some reason, when I type too fast, an illegal character is entered. Changing the get_line() function, called by get_token(), to only allow 7-bit ASCII characters in the input, seems to fix the problem.