Dec C++ i enter

0

Witam, jestem nowy na forum i od niedawna rozpocząłem naukę programowania w c++.
Uczę się w Dec c++ 4.9.9.2. przy pomocy książki "Symfonia c++ tomy I-IV".
Wykonuję to co jest w książce napisane, jednak gdy kompiluję program i uruchamiam go, w wierszu poleceń widnieje napis: "Podaj liczbe". Jest to część programu więc wybór muszę zatwierdzić enterem.
Ale po naciśnięciu entera wyłącza się okno.
Szukałem w googlach, na innych forach i próbowałem wielu rzeczy, ale się nie udawało. Więc proszę Was o pomoc: Co zrobić żeby program nie wyłączał się po naciśnieciu "enter".
Jeżeli będzie trzeba to wkleję kod.

0

Program jest po prostu wykonywany do końca i kończony, natomiast konsola którą wywołał dev z automatu się wyłącza. Po pierwsze zmień IDE a na pewno kompilator. Po drugie, jeżeli zatrzymasz program do naciśnięcia klawisza to konsola się sama nie zamknie. Jak uruchomisz program z już włączonej konsoli to będzie wszystko ok, jak być powinno.

0

Ok, a jakie IDE polecasz? I co w dev c++ jest takie złe?

0

Z prostych - code::blocks. Z bardziej zaawansowanych - Visual Studio. O dev-ie możesz sobie poczytać - wielokrotnie wałkowane było czemu jest zły.

0

A jest jakaś opcja żeby w tym dev c++ program nie wyłączał się po enterze? Chcę na nim chociaż pierwszy temat dokończyć :)
Na razie wygląda tak:

#include <iostream.h>
#include <conio.h>
int main()
{
    int   stopy ; //to do przechowywania liczby stop
                  // liczby stop
    float metry ; //do wpisania wyniku
    float przelicznik = 0.3 ;   //przelicznik:
                                //stopy na metry
    cout << "Podaj wysokosc w stopach : " ;
    cin >> stopy ;              //przyjecie danej
                                //z klawiatury
    metry = stopy * przelicznik;    // wlasciwe przeliczenie

    cout << "\n" ;                  // to samo co : cout <<endl ;
    
    // -----wypisanie wynikow
    cout << stopy << "stop - to jest : "
         << metry << "metrow\n" ;
         readln () ;
         return 0 ;
         getch () ;
         system ("pause");
}
 
0

Przenieś " return 0; " poniżej " system("pause"); ".

0

return 0 na koniec i bangla.

0

Niestety, przeniesienie "return" nic nie pomogło :(

0

To albo wyglądaj za oknem jasnej gwiazdy, albo zmień kompilator ;p

0

Ściągnąłem CodeBlock 10 wkleiłem to z dev c++ do CodeBlock, skompilowałem, nacisnąłem "run" pojawił się wiersz poleceń ale zamiast mojego programu: "Press any key to continue."... Wole jednak zostać i męczyć się z dev c++. Zaakceptuję to iż trzeba otwierać program przez konsole (to kilka sekund więcej - więc nie tak źle).
Dzięki za pomoc :)
Miłego programowania

0

Z takim podejściem nie zajdziesz dalej niż za narożnik pokoju ;p Trochę samodyscypliny i chęci. Założę się, że nie znalazłeś, paru wpisów na blogach o devie, czy chociażby mojego postu na DP à propos deva, a nie trudno to znaleźć w googlach ;p

0

poza tym wyjście z programu konsolowego po skończeniu obliczeń jest w większości wypadków oczekiwanym zachowaniem. Gdybyś odpalał swój program z konsoli zobaczył byś jego wyjście, a okno by się nie zamykało. Rozumiem jednakże, że podczas etapu programowania chciałbyś zatrzymać okno, a więc najlepiej do tego celu zastosować przed return konstrukcję typu:

std::cin.sync();
std::cin.get();

I tak jak podano wyżej, najlepiej zamienić starego, nędznego dev'a na code::blocks. Konsola odpalana spod IDE zatrzymuje się automatycznie, a to co jest na końcu napisane nie jest już częścią twojego programu tylko kodem doklejonym przez środowisko.

0
  1. Jak było wyżej powiedziane, zmien Deva na Code::Blocks. tam nie musisz dodawać system("pause")/getch()/innych trików, program odpalany jest z konsoli wbudowanej w C::B i zatrzymuje się po wykonaniu programu.
  2. Zmień podręcznik, uczysz się z przestarzałego wydania, aż dziw, że nikt tego jeszcze nie powiedział. Grębosz wydał "Symfonię C++ standard", która jest zaktualizowanym podręcznikiem do C++a.
0

Każda symfonia jest nędznym podręcznikiem, więc bez większej różnicy które wydanie ;p Deva zmien, i to najlepiej na VS.

PANI EDTA

Dodam, że uczyłem się, i polecam to : http://helion.pl/ksiazki/c-inzynieria-programowania-victor-shtern,cppiop.htm . Moja opinia o symfonii jest wykształcona po przeczytaniu części starej i całości nowego wydania.

0

Jasne, szukałeś w całym internecie...
http://4programmers.net/C/FAQ/Zatrzymanie_okna_programu

0

Wpisz getchar(); dwa razy;
.....
getchar();
getchar();

0

Lub cin.get(); cin.get();
:)

0

Nie wiem czemu, ale na QT i Win7 trzeba dwa razy wpisac getchar(); Przynajmniej na laborkach, na uczelnianych komputerach. ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1