Y encima le dices que no es portable, pero le plantas un getchar() con WinAPIs
O podes usar la misma macro pero llamando a esta función para limpiar el buffer que es mas portable, además te va a servir para otros momentos que necesites vaciar el buffer del teclado.
Bueno veo que te molesto que un random como yo te de sugerencias sobre como programar