Zamykanie się okna konsoli C++


(Red19boy10) #1

Witam

Dopiero zacząłem uczyć się C++ i już natrafiłem na mały problem. Na początku chciałbym napisać malutki programik (przelicznik miary itp).Skorzystałem ze skryptu napisanego przez autora "książki Symfonia C++" i właśnie mam z nim problem. Kompilator "otwiera" program i można wpisać liczby lecz natomiast po przejściu do zapisanego pliku w konsoli okno zamyka się po wpisaniu liczby, rozumiem że czegoś brakuje w kodzie.

Wszystko wygląda tak:

#include 

using namespace std;

main()

{

int stopy ;


float metry ;

float przelicznik = 0.3 ;


    cout << "Podaj wysokosc w stopach : " ;

    cin >> stopy ;


    metry = stopy * przelicznik;


    cout << "\n" ;


    cout << stopy << " stop - to jest : "

          << metry << " metrow\n" ;


}

(Blapiter) #2
#include 

using namespace std;

main()

{

[...]

    cin.sync(); // synchronizacja, "oczyszczenie" bufora odczytu

    cin.get(); // oczekiwanie na "enter"

    return 0;

}

(Sawyer47) #3

Kod, który podałeś jest (prawie) dobry, to kwestia zachowania konsoli. Można najpierw uruchomić konsolę, a potem z jej poziomu uruchomić program.


(Red19boy10) #4

Dziękuje blapiter, próbowałem wcześniej z tym cin,get oraz return 0; ale bez cin.sync nie działało. Dziękuje bardzo.


(wojmal) #5

Można jeszcze skorzystać pod Windowsem z systemowego polecenia w konsoli o nazwie "PAUSE". Trzeba tylko przed return 0; dopisać

system("PAUSE");

W okienku konsoli po wykonaniu programu pojawi się informacja: "Aby kontynuować naciśnij dowolny klawisz". Może się przyda.


(Drobok) #6

To się nie przyda z powodu braku poprawnego działania na linux :slight_smile:


(wojmal) #7

Jeżeli ktoś pisze pod Windowsem to może się przydać, ja go używam, bo jest w szkielecie programu generowanym w Dev-C++. A tak z ciekawości czy można wywołać polecenia systemowe Linuksa w kodzie C++, oczywiście gdy program jest skompilowany i uruchamiany na Linuksie.


(Drudan Forest) #8

A propos system("PAUSE"); http://www.gidnetwork.com/b-61.html

Oczywiście C / C++ ma możliwość korzystania z funkcji systemowych różnych systemów, w tym GNU/Linuksa.


(wojmal) #9

Dzięki Druedain. Domyślałem się, że system("PAUSE") nie jest szczególnie eleganckie i wydajne. Jest za to wygodne.