>>968
>>967のリンクみたいに自分でコンソールとやり取りするのは大変・・・
なのでよかったらこれドゾー
//MapVirtualKey用
#include <windows.h>
//getch or getche用
#include <conio.h>
int my_getch(void)
{
    unsigned char c = _getch();
    if(c != 0 && c != 0xe0) return -1;

    c = _getch();
    return (int)::MapVirtualKey((UINT)c,1);
}

getchがスキャンコードを返してきたときだけ仮想キーコードにして返す関数でつ。
普通の'a'とか'1'なんかだと-1が返ってきまつ。ちなみに矢印キーとかの仮想キーコードはこれ。
VK_PRIOR(PageUp) -> 0x21    VK_NEXT(PageDown) -> 0x22
VK_END -> 0x23    VK_HOME -> 0x24
VK_LEFT -> 0x25    VK_UP -> 0x26
VK_RIGHT -> 0x27    VK_DOWN -> 0x28

あと、MapVirtualKeyはuser32.dllに入ってるのでuser32.libのリンクをお忘れなく。
VC使ってるならこんな感じ。他はシラネ。
 cl test.cpp -link user32.lib

これならWinAPIのMapVirtualKey一つ使うだけなんでAllocConsole系よりかはまだ使いやすいかと。