Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++]szukam komendy "oczekiwania"

Ostatnio zmodyfikowano 2015-11-21 21:45
Autor Wiadomość
razenas
Temat założony przez niniejszego użytkownika
[C++]szukam komendy "oczekiwania"
» 2015-11-21 20:09:53
Witam, chciałbym spytać się czy w C++ jest jakas komenda, która sprawi, że pętla bedzie powtarzać się co 1s(przyklad, rownie dobrze mogloby byc 10s)
dokłądniej chce zrobić program, który najpierw losuje wartość "max powt" która ma okreslic ile razy petla sie powtórzy, czy raz bedzie to 5 razy innym 10 razy.
potem chce zrobić pętle która przy każdym "uruchomieniu" będzie coś liczyła(a może nie, jeszcze nie wiem)a później będzie wypisywała jakiś znak lub wynik obliczen, ale chce żeby operacja była powtarzana co czas t(np 1s)
czyli zamiast od razu wypisać mi
y=9
y=9
y=9
y=9
y=9

żeby wypisywało to tak
y=9 (mija 1s)
y=9 (mija 1s)
y=9 (mija 1s)
itd.

równie dobrze mogłaby wypisywać wszystko w jednej lini, yyyyyyy czyli y(mija 1s)y(mija 1s)
chodzi mi TYLKO O KOMENDE NA PONOWNIE WYKONANIE FUNKCJI PO OKRESLONYM CZASIE, albo na KOMENDA NA ZATRZYMANIE PROGRAMU NA OKRESLONY CZAS
P-140512
carlosmay
» 2015-11-21 20:24:25
C/C++
#include <cstdlib>
#include <ctime>

sleep( 1000 ); // 1000 ms = 1s
 
Dla nowszych standardów:
http://stackoverflow.com​/questions/158585​/how-do-you-add-a-timed-delay-to-a-c-program

P-140513
michal11
» 2015-11-21 20:27:46
Masz 3 opcje:

1. Własne rozwiązanie oparte na jakimś liczniku czasu i pętli while
2. Funkcja sleep_for() (chyba najlepsza opcja)
3. Funkcja sleep()

@up
gcc version 4.9.2
 nie kompiluje się
VS 2013 professional
 również nie kompiluje się

Nigdzie w cstdlib i ctime nie znalazłem funkcji sleep().
P-140514
razenas
Temat założony przez niniejszego użytkownika
» 2015-11-21 21:33:41
C/C++
#include <iostream>
#include <windows.h>
#include <time.h>
#include <stdio.h>
using namespace std;
int powtorzenia, zmiana = 3;
int main()
{
    Sleep( 3000 );
    srand( time( NULL ) );
    powtorzenia = rand() % 5 + 5;
    for( int i = 1; i <= powtorzenia; i++ )
    {
        cout << ".";
        Sleep( 1000 );
    }
    getchar(); getchar();
    return 0;
}
Czyli to powinno być dobrze, ale jak musiałbym przekształcić kod aby użyć  sleep_for() ?

No i dzięki za rady :)
P-140518
michal11
» 2015-11-21 21:35:03
W podanym linku masz przykładowy kod.
P-140519
razenas
Temat założony przez niniejszego użytkownika
» 2015-11-21 21:45:33
no wlasnie nie rozumiem
std::this_thread::sleep_for (std::chrono::seconds(1));

bo w Sleep(1000) oznaczalo 1 sekunde a tutaj jest jakies chrono
P-140521
« 1 »
  Strona 1 z 1