1

Тема: Як почати программу, нажав якійсь певний символ, наприклад ENTER

Як можна зробити тут так , щоб гравець починав гру не з будь якого символу(бо там просто char зараз), а з якогось одного , наприклад ENTER? Код:

#include <iostream>
#include <Windows.h>
#include <ctime>

using namespace std;

int ThrowDices();

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(NULL));
    int playerSum = 0;
    int computerSum = 0;
    char ch;
   
    for (int i = 0; i < 3; i++)
    {
        cout << "\nИгрок, нажмите Y, чтобы походить: ";
        cin >> ch;
        cout << endl;
        playerSum = playerSum + ThrowDices();
        cout << "\nОбщая сумма игрока: " << playerSum << endl;
        cout << "\nПоходил компьютер: ";
        computerSum = computerSum + ThrowDices();
        cout << "\nОбщая сумма компьютера: " << computerSum << endl;
    }
             if (playerSum > computerSum)
             {
                 cout << "\nGame over. You won!" << endl;
             }
             if (computerSum > playerSum)
             {
                 cout << "\nGame over. Computer wins." << endl;
             }
    
    cout << "\nРезультат игрока: " << playerSum;
    cout << "\nРезультат компьютера: " << computerSum << endl;
   
    return 0;
}

int ThrowDices()
{
    int firstAttempt = 1 + rand() % 6;
    int seccondAttempt = 1 + rand() % 6;
    cout << firstAttempt << " | " << seccondAttempt;

    int sum = firstAttempt + seccondAttempt;
    cout << "\nСумма: " << sum;
    return sum;
}

2

Re: Як почати программу, нажав якійсь певний символ, наприклад ENTER

розібрався:

    do {
        cin.sync(); // очистка буфера
        cin >> c;
    } while (c != 'y' && c != 'Y');

3

Re: Як почати программу, нажав якійсь певний символ, наприклад ENTER

Рядок:

cin >> ch;

Для ENTER замінити на:

do {
  cin >> ch;
} while(ch != '\r');

Для Y (як написано в коді) замінити на:

do {
  cin >> ch;
} while(ch != 'y' && ch != 'Y');
Подякували: i.jazz1

4

Re: Як почати программу, нажав якійсь певний символ, наприклад ENTER

А все ж таки питання відкрите)) як з символами вже зрозуміло а як саме зробити, щоб тільки ENTER ..чи навіть backspace?

5

Re: Як почати программу, нажав якійсь певний символ, наприклад ENTER

Як ENTER, я написав. А взагалі, IO-потоки створені для ледарів та школоти, imho.

Є така категорія можливостей у майже всіх мовах програмування, яка при першому знайомстві виглядає круто, але по мірі нарощування скілів виявляється, що у більш-менш складному софті її застосування виявляється незручним, чи взагалі непотрібним.

Коротше, використовуйте замість потоків функції із старого доброго stdio.h, наприклад, getchar().

6

Re: Як почати программу, нажав якійсь певний символ, наприклад ENTER

Дякую за відповідь, я, нажаль, не бачив того повідомлення . Хочу додати,що я нещодавно почав вчити ++ та й взагалі програмування тож вибачайте, що може прості речі не розумію :)
Щодо ENTER, я спробував так як ви показали '\r' та все одно, нажимаючи ентер, программа не стартує та пропонує далі нажимати символи. Бібліотеку stdio.h також додав. Що я роблю неправильно?

7

Re: Як почати программу, нажав якійсь певний символ, наприклад ENTER

Спробуйте '\n'