aspartam Temat założony przez niniejszego użytkownika |
» 2020-05-12 20:13:30 Widzę teraz różnicę czasu i się oficjalnie poddaje, nie ma sensu dłużej tego robić, skoro każdy stara się pomóc a ja i tak nic nie rozumiem. Nie dostanę zaliczenia i tyle. Ta biblioteka nie chce działać, pojawia się komunikat, że w ogóle nie ma czegoś takiego. I jak ja chcę to zatrzymać, skoro to nawet poprawnie czasu nie odlicza, załamka i tyle. |
|
pekfos |
» 2020-05-12 22:47:45 Nieblokujące wejście z konsoli nie jest przenośne, podając New Curses zakładam że piszesz pod Linuksa (clear nie jest windowsowym poleceniem). Być może musisz to doinstalować. Pod Windowsem byłoby prościej. https://stackoverflow.com/questions/448944/c-non-blocking-keyboard-inputPrzenośnym rozwiązaniem byłoby użycie wątków. Do użycia standardowych dobrze by było mieć kompilator który nie nazywa standardu z 2011 "eksperymentalnym", chociaż pewnie wszystko zadziała jak dodasz opcję kompilatora -std=c++11, tak jak ci polecił błąd kompilacji. Wystarczyłoby uruchomić timer() w osobnym wątku i użyć std::atomic_bool do komunikacji. |
|
aspartam Temat założony przez niniejszego użytkownika |
» 2020-05-13 13:20:34 Używam windowsa i pewnie jakąś starszą wersję kompilatora i dlatego to nie działa, a nawet jakby te wątki działały, to nie wiem w którym miejscu ich użyć, ani gdzie wkleić te poprawkę błędu. To "clear" też mi nie pasuje, ale wtedy ładnie wszystko widać na środku i jakoś to wygląda (szkoda, że się spóźnia:)). Odsyłam takie i modle się o 3 |
|
pekfos |
» 2020-05-13 16:36:46 Pod Windowsem możesz użyć kbhit() z <conio.h>. Wszystko powinno być dostarczone razem z kompilatorem. |
|
aspartam Temat założony przez niniejszego użytkownika |
» 2020-05-14 14:08:25 Czy teraz czas odlicza się dobrze? Udało mi się też (mam nadzieje, że poprawnie) zmienić to system clear i wygląda to dużo ładniej. Jednak, kiedy próbuję użyć funkcji do zatrzymania, nie działa to poprawnie, dlaczego? #include <iomanip> #include <iostream> #include <stdlib.h> #include <unistd.h> #include <ctime> #include <cstdlib> #include <conio.h> using namespace std;
int hours = 0; int minutes = 0; int seconds = 0;
void displayClock() { void clear_screen() ;std::system("cls");
cout << setfill( ' ' ) << setw( 55 ) << " STOPER \n"; cout << setfill( ' ' ) << setw( 55 ) << " --------------------------\n"; cout << setfill( ' ' ) << setw( 29 ); cout << "| " << setfill( '0' ) << setw( 2 ) << hours << " hrs | "; cout << setfill( '0' ) << setw( 2 ) << minutes << " min | "; cout << setfill( '0' ) << setw( 2 ) << seconds << " sec |" << endl; cout << setfill( ' ' ) << setw( 55 ) << " --------------------------\n"; }
void timer() { while( true ) { time_t sekundy = time( 0 ); displayClock(); sleep( 1 ); seconds++; if( seconds == 60 ) { minutes++; if( minutes == 60 ) { hours++; minutes = 0; } seconds = 0; } } }
int main() { timer(); { if(kbhit()){ auto got=getch(); if(got=='p'||got=='P'){ cout<<"PAUSED, R to resume.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"; do auto got=getch(); while(got!='r'&&got!='R'); } } } return 0; }
|
|
pekfos |
» 2020-05-14 15:14:02 Czy teraz czas odlicza się dobrze? |
Nic się w kodzie nie zmieniło. |
|
aspartam Temat założony przez niniejszego użytkownika |
» 2020-05-14 17:09:07 A teraz jest okej? Może mogę coś usunąć, bo wydaje mi się, że są tu dwa kody na raz i jakoś to działa void timer() { clock_t startTime = clock(); while( true ) { sleep (1) ;clock_t secElapsed = (clock() - startTime) / CLOCKS_PER_SEC; cout << secElapsed; time_t sekundy = time( 0 ); displayClock(); seconds++; if( seconds == 60 ) { minutes++; if( minutes == 60 ) { hours++; minutes = 0; } seconds = 0; } } }
|
|
pekfos |
» 2020-05-14 20:55:58 Teraz masz 3 kody na raz i dalej nic się w kodzie nie zmieniło. Dalej czas bierzesz w tej samej błędnej implementacji, która działa tym błędniej, im więcej kodu dopiszesz. seconds++;
if( seconds == 60 ) { minutes++; if( minutes == 60 ) { hours++; minutes = 0; } seconds = 0; } To jest do usunięcia. Dostałeś już kod który liczy czas poprawnie, wystarczy tamten wynik rozdzielić na sekundy, minuty i godziny. |
|
1 « 2 » 3 |