zliczenie ilości pętli?

greg007

Użytkownik
Dołączył
Czerwiec 28, 2007
Posty
314
mam program z nie skończoną pętlą while i mam pytanie jak zrobić by pętla była zliczana to znaczy ile razy się wykonała. oto program:


#include <windows.h>
#include <iostream.h>
int main()
{
int b;
while(1)
{
system("cls");
cout<<"ile razy wykonala sie petla while: \n"; // tu ma sie wysiwietlac ile razy wykonala sie petla while
for(b=1;b<=10;b++)
{
cout<<b;
cout<<"\n";
Sleep(500);
}}}[/b]
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
Jedna z opcji:
Kod:
#include <iostream>

int main(){
    int counter=0;
    while(++counter){
        std::cout<<"po raz "<<counter<<std::endl;
        /* sth */
    }
}

1. W kodzie brakuje wcięć.
2. Nie korzystaj z <iostream.h> tylko <iostream>, kompilator powinien wyrzucić Ci tu ostrzeżenie na wzór: "Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated."
3. Zmienna b powinna być zadeklarowana w ciele for'a, gdyż nie odnosisz się do niej nigdzie wcześniej/później, a im węższy zakres widoczności tym lepiej:
Kod:
for(int b=1;b<=10;b++)
4. Zakres int'a jest ograniczony, jeżeli pauza będzie dość mała to szybko się on przekręci.
 

greg007

Użytkownik
Dołączył
Czerwiec 28, 2007
Posty
314
wszystko pięknie ładnie co to jest to std/sth??

std::cout<<"po raz "<<counter<<std::endl;

sth::cout<<"po raz "<<counter<<sth::endl;[/b]

pokazuje tu błąd ;/


działa ale w taki sposób:

cout<<"po raz "<<counter<<"\n";[/b]


wielkie dzięki za pomoc
smile.gif
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
No więc std to przestrzeń nazw C++, w której są operacje obsługi wejścia/wyjścia, a mówiąc prościej, to są tam operacje na plikach oraz wyświetlanie i pobieranie danych z konsoli. Zobacz, że nie użyłem 'using namespace std', tylko jawnie piszę, z jakiej przestrzeni nazw wywołuje metodę - dlatego mam w kodzie std:: a Ty nie masz. Oba rozwiązania mają plusy i minusy.

Wszytko to jest kapitalnie objaśnione w książce klik - jeśli chcesz zgłębić C++ i na prawdę Ci się on podoba to jest to pozycja jak najbardziej dla Ciebie.

Co do sth, to skrót od something - po angielsku 'coś', w LO nauczyciel tak pisał i tak mi zostało, jak mam oznaczyć, ze gdzieś ma być coś, ale to, czym to coś jest nie jest istotne to pisze tak właśnie
smile.gif


sth != std

PS pisz konkretnie jak błąd zauważyłeś, tzn czy kod się nie skompilował (jaki komunikat?). czy po kompilacji działa błędnie (jakie dane wejściowe etc) albo coś innego wzbudza Twoje podejrzenia - po samym info, że jest źle trudno coś powiedzieć.

Pozdrawiam serdecznie
 

greg007

Użytkownik
Dołączył
Czerwiec 28, 2007
Posty
314
Wielkie dzięki za pouczenie i dobre rady:) jak bym mógł zadać jeszcze jedno pytanie... Jak zrobić pauzę pętli tym w programie. to znaczy naciskam klawisz np: spacji i pauza naciskam drugi raz rusza dalej program... z góry dzięki za pomoc:)
 

thc_flow

Zbanowany
Dołączył
Listopad 13, 2008
Posty
649
Do tego przydałby się osobny wątek na obsługę klawiatury...
 

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
Kod:
Jeśli spacja jest wciśnięta, czekaj dopóki spacja nie zostanie wciśnięta ponownie i działaj dalej.
Kod:
...
if(space jest wciśniety)
{
    while(spacja nie wcisnieta)
    {
        Sleep(9999);
    }
}
Napisałbym Ci to w C++ ale denerwuje mnie Twój brak chęci i skłonność do bagatelizowania programowania. Myśl, myśl, myśl...
 

greg007

Użytkownik
Dołączył
Czerwiec 28, 2007
Posty
314
1. to nie pauza bo mogę np chcieć zatrzymać na 2 sekundy lub na godzinę...
2. jak bym miał brak chęci bym wo gule się tym nie zajmował. Po prostu na programowaniu w szkole był tylko cs(counter strike) a program na zaliczenie po 2 latach nauki to było proste menu oparte na pętli swith a funkcja programu kalkulator który i tak ja napisałem(ale to szczegół).
 
Do góry Bottom