after your call to scanf(), use getchar() to "eat" all the invalid input in the buffer.

nonpuz, I hear you on the problem with scanf but it does come in handy if you have guaranteed data formatted...