A'ight. Well I solved the problem, although not how I had intended to. I ended up using:

quit = getch();
if (quit == 113 || quit == 81)
return 0;

It works. Now hitting Q is the only way to quit, rather than Ctrl-C. I had a play with fflush(stdin); thanks for the idea indolent, but no success. As for the pointer increment smirc, yeah it is a good idea but it increments by the wrong value. Its using integers which chew up 2 bytes, so it increments by 2 rather than the 1 I want. Still, it is a more elegant way of incrementing the pointer, I might have a play with it and see if I can make it work.

Thanks for the help guys, it was appreciated.
Hmmm, Im still curious as to why the origional method didn't work though. Can anyone else give any reasons to that?