Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet C++-ban adott...

Hogyan lehet C++-ban adott ideig futó cilus-t létrehozni?

Figyelt kérdés
Mondjuk while alatt hogyan lehet kivitelezni hogy pl 1 másocpercig csinálja? Aki belinkeli a Microsoft MSDN vagy egyéb oldalt az légszi magyarázza már meg ne csak angol linkeket küldjön amit valószínűleg vagy nem értek meg vagy félre értek benne valamit. Persze a legjobb ha példaként leírjátok az 1sec-es verziót

2015. febr. 27. 18:47
 1/2 anonim ***** válasza:

Ha nem érted majd a következő kommentelő elmagyarázza :D


#include "stdafx.h"

#include <Windows.h>

#include <iostream>


int _tmain(int argc, _TCHAR* argv[])

{

while (true)

{

static DWORD startTime = GetTickCount(); // GetTickCount() - Vissza adja hány milliszekundum óta fut a gép

DWORD currentTime = GetTickCount() - startTime;


if (currentTime > 1000)

break;


std::cout << "RUNNING" << std::endl;

}


return 0;

}

2015. febr. 27. 22:05
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

A ciklus indítása előtt megnézed a jelenlegi időt:


auto startTime = std::chrono::high_resolution_clock::now();


A ciklus feltételeként pedig megszabod, hogy addig legyen igaz, amíg elnem telik az egy másodperc:


while( std::chrono::high_resolution_clock::now()-std::chrono::seconds(1) < startTime ) {

}


(Ezeket az objektumokat a <chrono> headerben találod)



Itt egy teljes példa kód:

#include <iostream>

#include <chrono>

#include <thread>


int main()

{


auto startTime = std::chrono::high_resolution_clock::now();

while( std::chrono::high_resolution_clock::now()-std::chrono::seconds(1) < startTime ) {

std::cout << "doing stuffs" << std::endl;

std::this_thread::sleep_for(std::chrono::milliseconds(100));

}

}


!!Ne felejtsd el beállítani a fordítódba a 2011-es szabányt!!Pl: g++ main.cpp -o main -std=c++11

2015. febr. 28. 15:31
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!