• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nauki programowania w C++

Object Storage Arubacloud
0 głosów
1,015 wizyt
pytanie zadane 6 października 2016 w Nasze poradniki przez Adam Glasgow Nowicjusz (180 p.)

Witam...

Dopiero zaczynam przygodę z programowaniem :). Dla tego, zależy mi na dokładnym poznaniu jego działania... 

Obecnie Pracuje na macOS Sierra... 10.12, i tutaj zaczyna się problem......

Ucząc się z Kursu C++ odc. 3: Pętla: for, while, do..while. Pętle wyjaśnione. 

Natrafiłem na problem, przy pierwszym ćwiczeniu, miałem stworzyć program który zrealizuje odliczanie czasu do wystrzelenia rakiety, ziemia powietrze.

Więc według instrukcji:

#include <iostream>
#include <unistd.h>
#include <cstdlib>

using namespace std;

int main()
{
    for (int i=15; i>0; i--)
    {
        sleep(1000);
        system ("clear");   ---- ("cls") też próbowałem.
        cout << i << endl;
    }
    cout<<"JEBUT";

    return 0;

Zanim postanowiłem tutaj zapytać, przeszukałem fora.. jedyne rozwiązanie jakie zostało podane to taki przykład ( #include <curses.h> and system("clear");

Niestety w konsoli w terminalu, nie ma żadnej akcji, po prostu... nic sie nie dzieje.... Z chwilą kiedy nie wpisuje, sleep i systemu cls czy clear.. w terminalu pokazuje normalnie ciąg liczb od 15 do 1 i na końcu jebut:

Pracuje na mac osX wiele lat, nie chciał bym się przesiadać na windows czy linux.  

 

Z góry dziękuję, za każda pomoc...  Pozdrawiam Adam 

 

komentarz 6 października 2016 przez DragonCoder Nałogowiec (36,500 p.)

Należy użyć ncurses, man 3 clear.

# include <curses.h>
int clear(void);

http://myapple.pl/forums/topic/169825-czyszczenie-ekranu/

a sprobuj moze clean.... Moze pomoze

 

Co do sleep(); to widzialem rozne wesje:

Sleep();

_sleep();

 std::this_thread::sleep_for(2s);

http://stackoverflow.com/questions/4184468/sleep-for-milliseconds

komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
Bardzo dziękuje za odpowiedź...

Niestety w dalszym ciągu na ekranie konsoli nie wyświetlają sie liczby, a jedynie kursor...

Za każdym razem jeżeli inaczej napisze sleep, wyskakuje błąd... jeżeli chodzi o zamianę clear na  clean to nic nie zmienia...  :(

Do tej pory nie miałem problemów z pisaniem tak prostych instrukcji.. Jeżeli chodzi o pętle to wiem, że może mi sie to przydać w przyszłości...

Jeszcze raz dzięki....
komentarz 6 października 2016 przez DragonCoder Nałogowiec (36,500 p.)

Zle zapisalem :D

#include <iostream>
#include <unistd.h>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    for (int i=15; i>0; i--)
    {
        sleep(1000);
        cout << i << endl;
        system ("clear");   ---- ("cls") też próbowałem.
        
    }
    cout<<"JEBUT";
 
    return 0;

 

Petla nie moze sie przyda, tylko na pewno i uratuje Ci kilka razy tylek

 

komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
edycja 6 października 2016 przez Adam Glasgow
#include <iostream>
#include <unistd.h>
#include <curses.h>
#include <cstdlib>

using namespace std;

int clear(void);

int main()
{
    for (int i=5; i>0; i--)
    {

        sleep(1000);
        system("clean");
        cout << i << endl;
    }
    cout<<"JEBUT";

    return 0;

Przy tym sie poddałem....

Z Pozostałymi ćwiczeniami z pętlą (for) nie ma problemu.... 

komentarz 6 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Wstaw cout przed czyszczeniem ekranu i bedzie ok....
komentarz 6 października 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
krrr123 -> jak wstawi przed to cyfra pojawi się i od razu usunie. Daj cout<< przed sleep()
komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
Nie pomogło :(
komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
Zgubiłem też znak równości przy i>=0; ale mimo poprawy to też nie pomogło...

#include <iostream>
#include <unistd.h>
#include <curses.h>
#include <cstdlib>

using namespace std;

int clear(void);

int main()
{
    for (int i=5; i>=0; i--)
    {

       cout<< sleep(1000);
       cout << i << endl;
       cout<<system("clean");
    }
    cout<<"JEBUT";

    return 0;

 

komentarz 6 października 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
Nie tak, chodziło mi o to żebyś cout<< i <<... dał linijkę przed sleep.
komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)

Jest postęp w konsoli ukazuje sie to co podałem i=10 ... i tyle liczby sie nie zmniejszają... 

#include <iostream>
#include <unistd.h>
#include <curses.h>
#include <cstdlib>

using namespace std;

int clear(void);

int main()
{
    for (int i=10; i>=0; i--)
    {
       cout<< i << endl;
       sleep(1000);
       system("clear");
    }
    cout<<"JEBUT";

    return 0;

 

komentarz 6 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;


int main()
{
    for (int i=10; i>=0; i--)
    {
       cout<< i << endl;
       _sleep(1000);
       system("cls");
    }
    cout<<"JEBUT";

    return 0;
}

Cos takiego mi dziala

komentarz 6 października 2016 przez WlPx01 Obywatel (1,220 p.)
Może zamiast sleep() wykorzystać samemu czas i stworzyć zegar, używając ctime lub odpowiednika na mac os. Przy okazji nauka przydatnej biblioteki.
komentarz 6 października 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
<chrono> i usypianie wątku.
komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)

Niestety nie działa:

13 error: use of undeclared identifier 'sleep' taki błąd mi wyskoczył...

Zmieniłem na poprawne sleep...i dopiero jak dodałem #include <unistd.h> przestał wyskakiwać ten błąd..

Cuż wiele nauki jeszcze mnie czeka...

 

1
komentarz 6 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Ja nie mam MacOS, dla mnie to syf, bez obrazy dla korzystajacych z uslug Apple, Mam windowsa i u mnie dziala to troche inaczej, dlatego musisz przerabiac czasami programy z poprawkami pod Mac
1
komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
Od początku mam schody, ale pracuje w tym systemie juz 10 lat jako fotograf...

Byłem zadowolony, dorabiałem jeszcze naprawiając i modernizując maczki...

Zawsze chciałem i ciągnęło mnie do  nauki programowania, to jakie mam trudności jeszcze bardziej mnie motywują... muszę więcej czasu i zaangażowania poświęcić temu środowiskowi...

Co do dziś, aplle robi z każdym update.. taką kaszanę, że głowa boli.... wracając 5 lat wstecz... osX upada teraz niżej jak windows...

Wśród znajomych z serwisu mamy takie powiedzenie;  MACZKI ŚLIMACZKI.. kiedyś było to nie do pomyślenia...
komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
Dzięki wielkie za pomoc...
komentarz 6 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Dla mnie Apple zginelo z Jobsem.... A Microsoft zginal juz dawno, teraz kazda firma leci na kase... Co z tego ze Apple ma dobre telefony, to znaczy system, bo telefony znajde duzo lepsze, ale ten system jest dobry i stabilny czego brakuje androidowi... Srodowisko ogarniesz, polecam przeczytac dokumentacje i sprawdzic co i jak
komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
Po śmierci Jobsa, olali swój...moim zdaniem priorytet... jakim był bardzo stabilny system na maczkach...

Każda zmiana przysparza tylko większych kłopotów temu systemowi, potrafi mi wywalić program przy pracy..

Myślałem, żeby sie na linuxa przerzucić...
komentarz 6 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tez o tym mysle ale mam maly dysk, mysle zeby dokupic dsyk HDD i tam zainstalowac i trzymac go obok laptopa
komentarz 6 października 2016 przez jpacanowski VIP (101,940 p.)

O Apple to się nie martwcie... większość ich użytkowników jest tak ślepa, że pomimo że pada ich OS, to będzie i tak dla nich naj naj naj...

Myślałem, żeby sie na linuxa przerzucić...

Tak dla informacji, poza Linuksem są też inne ciekawe albo i ciekawsze systemy jak np. Haiku, który doczekał się nawet Qt Creatora for Haiku.

A dla opozycji znajdzie się nowa wersja ReactOS'a :D http://reactos.org/gallery - dla tych co np. chcieliby mieć nowocześnieszy system niż XP, a z samym MS nie chcą mieć wiele wspólnego.

komentarz 6 października 2016 przez DragonCoder Nałogowiec (36,500 p.)
Myslalem o Haiku, ale sam nie wiem jak to z nim jest i czy jest stabilnym systemem.... Nie chcem zeby laptop po 2 latach mi sie mulil od systemu jak to z windowsem jest... Po za tym to nie taki zly pomysl... Jak sie nie myle to jest napisany w C++, jak dobrze kiedys czytalem
komentarz 6 października 2016 przez jpacanowski VIP (101,940 p.)

Jest stabilniejszy niż niejeden Windows i lepiej sobie radzi z wielozadaniowością.

https://www.youtube.com/watch?v=ApPRYosBG30

1
komentarz 6 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
Znając inne systemy... wiedziałem, że do programów graficznych Adobe -  meczek... chodził płynnie... , nie trzeba też kalibrować monitor...

Teraz, juz tak nie powiem z doświadczenia... przez ostatni rok, przy uruchomionych 4 projektach lub więcej .. z 10 razy złapał zwiechy, albo wyrzucało program... Mac ma 12GB ram... wrzuconego  ssd... ale co by nie miał, system jest najważniejszy.... w końcu odejdą graficy, projektanci, muzycy, filmowcy... zostaną szpanerzy...

Nie wydałem na macbooka pro czy maca dużo, popsute sprzedają ludzie za grosze, części też nie są drogie.. to dużo taniej to wynosi jak lenowo czy asus...

Tam gdzie mieszkam to jakieś 80% użytkowników appla, dla tego zostaje i pracuje na tym systemie... trzeba wiedzieć co się naprawia...

Dziękuje za przypomnienie o Haiku, słyszałem same dobre opinie.... zarezerwuje na niego jakiś dysk...zależy ile siły będę miał walczyć...

Pozdrawiam Adam...
komentarz 7 października 2016 przez jpacanowski VIP (101,940 p.)
Sam pracuję na MacBooku Pro z El capitan 10.11, ale nie wiem czy będę aktualizował do macOS Sierra 10.12
komentarz 7 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
Mam Sierre tylko dla tego, że od początku były jaja.... miałem już wcześniej pobranego Xcode 8, żeby go pobrać musiałem aktualizować go do 10.11... ( nie chciało mi sie szukać starszych wersji) skończyłem kurs na Xcode... mało mi było tej wiedzy,  to brat podesłał mi pasja do informatyki... super...  Zaczynam od C++ ...Chciałem pobrać CodeBlocks, zaczęły się schody, plugin do Xcoda ( Command_Line_Tools_macOS_10.12_for_Xcode_8.dmg) wymagał aktualizacji do 10.12...

Do tego katalog z dokumentami nie jest powiązany z users account, dla tego nawet "hello word " nie wyświetlało mi na terminalu... szybko dotarłem, co jest nie tak ... na początku myślałem, że coś źle zainstalowałem... Początki są fajne...

Zdarza sie często, że w trakcie pisania kodu, wywala mi CodeBlocks na szczęście mam zapisane gdzie skończyłem...heheh jak tak dalej pójdzie to będę musiał szukać jakiejś alternatywy.
komentarz 7 października 2016 przez jpacanowski VIP (101,940 p.)
A El Capitan był dla ciebie OK? Mam 10.11 i u mnie wszystko ładnie śmiga i na pewno nie zrobię żadnych aktualizacji. Jedyne co aktualizuję na bieżąco to tylko Google Chrome :) Wszystko działa dobrze i nawet nie myślę o żadnych alternatywach.
komentarz 8 października 2016 przez Adam Glasgow Nowicjusz (180 p.)
edycja 9 października 2016 przez Adam Glasgow
Mala poprawka,po malej modernizacji maczka... do 16GB ram i zmiana dysku na 500GB ssd.. Chodzi bardzo dobrze i szybko... (odkurzyłem go i nałożyłem nową pastę na procesor)...Pomogło... teraz pora na MacBooka..  To jak coś to polecam 10.12 :)

2 odpowiedzi

+1 głos
odpowiedź 6 października 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
+1 głos
odpowiedź 7 października 2016 przez Adam Glasgow Nowicjusz (180 p.)

Witam, eureka :)  rozwiazanie przyszło z najmniej oczekiwanej strony.... jako, że mój młodszy brat programuje na windowsie, nie przyszło mi do głowy... zapytać jego...o pomoc...

To był błąd, zaraz jak przeszliśmy na temat kodu... przesłał mi link, http://stackoverflow.com/questions/19439672/sleep-operation-in-c-platform-os-x-10-8

I sukces, program ruszył...

Mam nadzieje, że innym też to pomoże pisząc na platformie osX... Jeszcze raz bardzo dziękuje, za pomoc wszystkim....

Pozdrawiam Adam...

#include <iostream>
#include <unistd.h>
#include <curses.h>
#include <cstdlib>

using namespace std;



int main()
{
    for (int i=10; i>=0; i--)
    {
       cout<< i << endl;
       usleep(1000000);
       system("clear");
    }
    cout<<"JEBUT";

    return 0;

}

 

komentarz 9 października 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
Dziwne, sleep ze standardu (moja odpowiedź) powinno działać, ba, nawet lepiej. Sprawdzałeś tamtą opcję?

Podobne pytania

0 głosów
0 odpowiedzi 196 wizyt
pytanie zadane 10 kwietnia 2023 w Nasze poradniki przez kuras Początkujący (390 p.)
–2 głosów
0 odpowiedzi 852 wizyt
pytanie zadane 8 listopada 2017 w Nasze poradniki przez amb00 Bywalec (2,000 p.)
–2 głosów
1 odpowiedź 395 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...