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

Konsola z poziomu .exe, nie chce współpracować

+2 głosów
342 wizyt
pytanie zadane 29 maja 2015 w C i C++ przez Gandalf Obywatel (1,260 p.)

Witam, mam napisany program, ale z poziomu systemu czyli już po skompilowaniu do pliku .exe, za każdym razem konsola po działaniu jest zamykana, nim zdążę przeczytać komunikat końcowy, zastosowałem Windows.h z system("pause"), ale nie pomogło, co tu jest nie tak?

#include <iostream>
#include <vector>
#include <cstdlib>
#include <Windows.h>

using namespace std;

class mrowka
{
    int wiek; // wiek mrowki
    int DlugZycia;

public:
    mrowka() {}
    ~mrowka();

    void WpiszDlugoscZycia(int a)
    {
        DlugZycia = a;
    }
    void WpiszWiek(int a)
    {
        if(a > DlugZycia)
            wiek = DlugZycia;
        else
            wiek = a;
    }
    void Starzenie()
    {
        wiek += 1;
    }
    int PodajWiek()
    {
        return wiek;
    }
};

typedef std::vector<mrowka*> armia;

int main()
{
    armia mrowy;

    int n;
    cout << "Podaj liczbe mrowek: " << endl;
    cin >> n;
    cout << endl;

    int wiek, w;
    int MaxDlugoscZycia = 20;

    for(int k=0; k<n; k++)
    {
        mrowy.push_back(new mrowka);
    }

    for(int k=0; k<n; k++)
    {
        mrowy[k]->WpiszDlugoscZycia(MaxDlugoscZycia);
        w = (int)(rand()/(1.0+RAND_MAX)*10.0+0.5);
        mrowy[k]->WpiszWiek(w);
    }

    int czas;

    cout << "Podaj liczbe jednostek czasu ewolucji mrowek" << endl;
    cout << "T: "; cin >> czas; cout << endl;

    int n_total; //calkowita liczba mrowek

    for(int t=0; t<czas; t++)
    {
        n_total = 0;
        for(int k = 0; k<n; k++)
        {
            if(mrowy[k]->PodajWiek()<MaxDlugoscZycia)
                n_total++;
        }
        if(n_total == 0)
        {
            cout << "Wszystkie mrowy nie zyja :(" << endl;
            exit(0);
        }

        cout << t << "\t" << n_total << endl;

        for(int k=0; k<n; k++)
        {
            if(mrowy[k]->PodajWiek()<MaxDlugoscZycia)
                mrowy[k]->Starzenie();
        }
    }

    system("pause");
    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 29 maja 2015 przez niezalogowany
Hm, spróbuj może z getchar() :|
komentarz 29 maja 2015 przez Gandalf Obywatel (1,260 p.)
ani getchar(), getch() czy _getch() nie pomaga w tym problem :/
komentarz 29 maja 2015 przez niezalogowany
Hm, a po exit nie masz jednak pauzy, wiesz w którym momencie program ci się wyłącza?
komentarz 29 maja 2015 przez Gandalf Obywatel (1,260 p.)

nawet jeśli po exit(0), dodam system("pause"), to i tak program mi się wyłącza w momencie kiedy mrówki umierają i wyświetlana jest instrukcja informująca o tym, czyli:

cout << "Wszystkie mrowy nie zyja :(" << endl;

Liczba testów na których program jest zamykany to Liczba mrówek: 100, Cykl życia: 21

komentarz 29 maja 2015 przez Gandalf Obywatel (1,260 p.)

Ok działa, po prostu z tej instrukcji

 if(n_total == 0)
        {
            cout << "Wszystkie mrowy nie zyja :(" << endl;
            exit(0);
        }

usunąłem exit(0), a zamiast niej wstawiłem system("pause"), także zwraca komunikat o śmierci mrówek i program się nie zamyka :) dzięki za podsunięcie pomysłu.

komentarz 29 maja 2015 przez niezalogowany
No problem ;) Jak oglądałeś filmik od Mr. Zelenta (ten, w którym promował to forum), to wiesz, że właśnie o to w forum chodzi ;) Miło, że twój program działa :3
komentarz 29 maja 2015 przez Dorion300 Szeryf (90,250 p.)

Nie po a przed.

Podobne pytania

+1 głos
1 odpowiedź 480 wizyt
0 głosów
2 odpowiedzi 1,696 wizyt
pytanie zadane 20 maja 2015 w C i C++ przez Gandalf Obywatel (1,260 p.)
0 głosów
1 odpowiedź 897 wizyt
pytanie zadane 19 września 2021 w C i C++ przez Jan Rubach Nowicjusz (160 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...