C ++ Определить, когда пользователь нажимает клавишу со стрелкой

У меня возникла проблема с обнаружением нажатий клавиш со стрелками в моем консольном приложении C ++. Я перепробовал все, что нашел, и здесь, и на других сайтах учебников, но все они дают мне то же самое, когда я нажимаю стрелку:

Process returned 0 <0x0> execution time : 2.249 s
Press any key to continue.

Вот все методы обнаружения нажатия клавиш, которые я пробовал, все заканчивалось одинаково. Это только два из оставшихся в моем коде, другие, которые я пытался удалить, вместо того, чтобы комментировать.

Способ первый:

c1 = getch();
if(c1 == 0)
{

    c2 = getch();

    if(c2 == 72) {cout << endl << "Up Arrow" << endl;}
    else if(c2 == 80) {cout << endl << "Down Arrow" << endl;}
    else{cout << endl << "Incorrect Input" << endl;}

}

Способ второй:

switch(getch()) {
case 65:
       cout << endl << "Up" << endl;//key up
    break;
case 66:
    cout << endl << "Down" << endl;   // key down
    break;
case 67:
    cout << endl << "Right" << endl;  // key right
    break;
case 68:
    cout << endl << "Left" << endl;  // key left
    break;
}

Есть ли какая-то ошибка в моем коде, которая заставила меня вернуться к основному методу, или он пропустил какой-то код? Есть ли более быстрый способ сделать это? Я почти на 100% уверен, что мой другой код не имеет ничего общего с этой проблемой, потому что я изолировал код от зависимости от любого другого аспекта программы, и у меня продолжала возникать та же проблема.

Опять же, я перепробовал все способы нажатия клавиш со стрелками, которые мог найти, и продолжаю сталкиваться с той же проблемой. Если это имеет значение, я нахожусь на Windows 8 Samsung ATIV Smart PC и использую док-станцию ​​клавиатуры.

Заранее благодарю за любую помощь.