pushrbx icon

Untitled

pushrbx | PRO | 01/17/14 12:28:29 PM UTC | 0 ⭐ | 419 👁️ | Never ⏰ | []
C++ |

1.67 KB

|

None

|

0 👍

/

0 👎

// HomeWork1.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
int PressAnyKey(char *prompt) // msdn library
{
    DWORD mode;
    HANDLE hstdin;
    INPUT_RECORD inrec;
    DWORD count;
    char default_prompt[] = "Press a key to continue...";
 
    // Set the console mode to no-echo, raw input,
    // and no window or mouse events.
    hstdin = GetStdHandle(STD_INPUT_HANDLE);
    if (hstdin == INVALID_HANDLE_VALUE || !GetConsoleMode(hstdin, &mode) || !SetConsoleMode(hstdin, 0))
        return 0;
 
    if (!prompt) 
        prompt = default_prompt;
 
    // little fix on the example code by me: convert const char* to WCHAR*
    int buffer_size = MultiByteToWideChar(0, 0, prompt, -1, NULL, NULL) * sizeof(wchar_t);
    WCHAR *w_prompt = new WCHAR[buffer_size]; // allocate memory
    MultiByteToWideChar(0, 0, prompt, -1, w_prompt, buffer_size);
 
    // Instruct the user 
    WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), w_prompt, lstrlen(w_prompt), &count, NULL);
 
    FlushConsoleInputBuffer(hstdin);
 
    // Get a single key RELEASE
    do ReadConsoleInput(hstdin, &inrec, 1, &count);
    while ((inrec.EventType != KEY_EVENT) || inrec.Event.KeyEvent.bKeyDown);
 
    // Restore the original console mode
    SetConsoleMode(hstdin, mode);
 
    return inrec.Event.KeyEvent.wVirtualKeyCode;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Countback program." << endl;
 
    for(int i = 0; i <= 10; i++)
    {
        cout << i << endl;
 
        if(i == 10)
        {
            cout << "Thunderbirds are go!" << endl;
            break;
        }
 
        Sleep(1000);
    }
 
    PressAnyKey("Press any key to continue...");
 
    return 0;
}

Comments