Code stop trong c++

void newline();
int main()
{


	int millionseconds = 0;
	int seconds = 0;
	int minutes = 0;
	int hours = 0;
	int x;
	cout << "Press any key to start...." << endl;

	char start = _getch();
	for (;;){

		newline();
		if (millionseconds == 10){
			++seconds;
			millionseconds = 0;
		}
		if (seconds == 60){
			++minutes;
			seconds = 0;
		}
		if (minutes == 60){
			++hours;
			minutes = 0;
		}
		cout << hours << " : " << minutes << " : " << seconds << " : " << millionseconds << endl;
		++millionseconds;
		Sleep(100);

	}
	system("pause");
	return 0;



}
void newline()
{
	cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
}

em là newbie… code này là “đồng hồ đếm giờ” em xem hướng dẫn trên youtube… nhưng code này chỉ có lệnh chạy không có lệnh dừng, giờ em muốn thêm lệnh “bấm 1 nút bất kì để dừng” thì phải làm sao ạ ?.. mong mấy bác giúp đỡ :smile:

1 Like

Thêm sự kiện GetAsyncKeyState vào vòng for

for( ;GetAsyncKeyState(VK_LSHIFT); )
{
//do something
}

Mã key bác có thể dò ở đây: https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx

Đoạn code trên yêu cầu nhấn left shift để dừng vòng lặp

2 Likes

cám ơn bác… được rồi… nhưng hình như phải giữ shift code mới chịu chạy… thả ra là dừng -.-

à, nhầm =)), điều kiện trong for ấy, trước giờ mình hay viếtnên bị nhầm

for(; ;)
{
if(something)
{break;}
}
1 Like

bác có thể chèn thử vào code em được không ạ :(( … em không hiểu lắm :frowning:

    for( ; ; )
    {
    if(GetAsyncKeyState(VK_LSHIFT))
    {
    break;
    }
    else
    {
    //do something
    }
}

Cách nào cũng như nhau thôi, do cách viết mỗi người khác nhau

1 Like

À quên nữa, hàm này không trả về true false mà trả về giá trị int, nên bác có theer tùy biến giá trị int tùy mục đích

1 Like

vỗ tayyy!!! hú hú em làm được rồi !!! cám ơn bro!

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