Muốn tạo lệnh press any key to pause /play thì làm thế nào?

Với code đồng hồ ở topic trước. Em muốn tạo lệnh press any key to pause /play thì làm thế nào ạ?

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

using namespace std;

int main()
{
    int h, m, s;
    for (h = 0; h < 60; h++)
    {
        for (m = 0; m < 60; m++)
        {
            for (s = 0; s < 60; s++)
            {
                Sleep(1000);
                system("CLS");
                cout << setfill('0') << setw(2) << h << ":";
                cout << setfill('0') << setw(2) << m << ":";
                cout << setfill('0') << setw(2) << s;
            }
        }
    }
    return 0;
}

Nếu em muốn press any key to exit thì em sử dụng hàm getchar() nhé, hoặc getch(). Nhưng anh khuyến khích sử dụng getchar()

printf("press any key to exit");
getchar();
return;

Còn em muốn pause/play thì em vẫn dùng lệnh getchar(); nhưng em tạo một vòng loop(lặp) khác. Sau đó em sẽ Sleep trong loop(lặp) đó.

Trong vòng looplặp này em tạo thêm một vòng lặp vô tận khác, điều kiện là khi nào bấm thêm 1 cái nữa thì mới thoát ra.

for (s = 0; s < 60; s++)
{
    Sleep(1000);
    system("CLS");
    cout << setfill('0') << setw(2) << h << ":";
    cout << setfill('0') << setw(2) << m << ":";
    cout << setfill('0') << setw(2) << s;
}
1 Like

có windows.h thì dùng getasynckey thử xem

#include <Windows.h>
#include <iostream>
using namespace std;
int main()
{
	while (true)
	{
		if (GetAsyncKeyState(VK_LSHIFT))
		{
			cout << "Hello" << endl;
			break;
		}
	}
	
}

Xem thêm key map ở đây: https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?