C++ – program się wyłącza

Masz Windowsa i uczysz się c++ ? Aplikacja kompiluje się, ale zamyka się od razu po uruchomieniu ? Jeśli dwa razy odpowiedziałeś tak, to masz problem. Z aplikacją jest wszystko w jak najlepszym porządku. Gdyby był w niej błąd, to pojawiłoby się okienko z informacją o nieprawidłowej operacji i konieczności wymuszonego zamknięcia.

Problem leży gdzieś indziej. Przyzwyczajony/a jesteś wyłącznie do okienek (z paskiem tytułowym, ramką i trzema ikonkami służącymi do zmiany wymiarów i do zamknięcia). Tymczasem program nie ma takiego okienka (jw., gdyby miał okienko, to by je pokazał). Aplikacja działa w konsoli (to czarne okienko z mrugającym kursorem, które pojawia się czasami przy niektórych aplikacjach/wirusach), a Windows domyślnie zamyka okno konsoli jak tylko program zakończy działanie. Rozwiązań jest kilka:

  1. odpalasz program w konsoli (xp: start – uruchom – cmd ; vista: start – rozpocznij wyszukiwanie – cmd)
  2. dodajesz czekanie na dowolny klawisz na końcu programu ( getch() )
  3. dodajesz cin >> zmienna_bez_znaczenia ;
  4. dodajesz std::cin.get() ;

Rozwiązanie numer 1 będzie idealne, gdy piszesz programy np. do SPOJ (automatyczne testy jakoś nie chcą używać klawiatury, żeby zakończyć działanie programu). Jeśli piszesz dla siebie, to któreś z pozostałych rozwiązań będzie w sam raz.

Przy okazji: Jeśli przy kompilacji widzisz komunikat o brakujących dowiązaniach do elementów mających w nazwie _WinMain (lub podobne) to znak, że źle wybrałeś typ projektu (aplikacja okienkowa zamiast konsolowej). We właściwościach projektu poszukaj miejsc, gdzie da się zmienić to ustawienie (przykład znajdziesz tutaj). W najgorszym razie możesz skopiować zawartość pliku i utworzyć nowy projekt.

 

Owocnego programowania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*