Jest to prawdopodobnie kłopotliwe pytanie, ponieważ bez wątpienia odpowiedź jest oślepiająco oczywista.
Korzystam z programu Visual Studio od lat, ale po raz pierwszy opracowałem aplikację konsolową.
Po uruchomieniu aplikacji pojawia się okno konsoli, pojawia się wynik programu, a następnie okno zamyka się wraz z zamykaniem aplikacji.
Czy istnieje sposób, aby pozostawić je otwarte, dopóki nie sprawdzę danych wyjściowych, lub wyświetlić wyniki po zamknięciu okna?
c
visual-studio
console
Jaskółka oknówka
źródło
źródło
Odpowiedzi:
Jeśli uruchamiasz bez debugowania (Ctrl + F5), domyślnie wyświetla monit o naciśnięcie klawisza Return, aby zamknąć okno. Jeśli chcesz użyć debugera, powinieneś umieścić punkt przerwania w ostatniej linii.
źródło
ctrl+f5
nie działa, nie maProperties
kiedy klikam prawym przyciskiem myszy projekt, równieżwrench icon
jest wyszarzony.Kliknij projekt prawym przyciskiem myszy
Wybierz opcję Konsola (/ PODSYSTEM: KONSOLA) w
SubSystem
opcji lub możesz po prostu wpisać Konsolę w polu tekstowym!Teraz spróbuj ... powinno działać
źródło
CTRL+F5
zawiedzie, jeśli, powiedzmy, dodasz nowy plik C ++ do pustego projektu.Oto sposób na C / C ++:
Umieść to na górze programu, a JEŚLI jest on w systemie Windows (
#ifdef _WIN32
), wówczas utworzy makro o nazwieWINPAUSE
. Ilekroć chcesz, aby Twój program wstrzymał się, zadzwoń,WINPAUSE;
a program wstrzyma program za pomocą polecenia DOS. W przypadku innych systemów, takich jak Unix / Linux, konsola i tak nie powinna wyjść z wyjścia programu.źródło
pause
Komenda jest specyficzne dla systemu Windows.Idź do menu debugowania-> Naciśnij Start bez bez debugowania
źródło
Jeśli korzystasz z .NET, umieść go
Console.ReadLine()
przed końcem programu.Będzie czekać
<ENTER>
.źródło
Console.ReadKey()
po prostu poczekaj na dowolny klucz.Począwszy od Visual Studio 2017 (15.9.4) istnieje opcja:
Odpowiedni fragment z dokumentacji Visual Studio :
źródło
spróbuj zadzwonić
getchar()
tuż przedmain()
powrotem.źródło
(/ SUBSYSTEM: CONSOLE) nie działał na moim vs2013 (już go miałem).
„Uruchom bez debugowania” nie jest opcją, ponieważ nie chcę przełączać się między debugowaniem a wyświetlaniem danych wyjściowych.
Skończyłem z
Rozwiązanie zastosowane w qtcreator w wersji 2.6. Teraz, gdy qt rośnie, vs idzie w drugą stronę. Jak pamiętam, w vs2008 nie potrzebowaliśmy takich sztuczek.
źródło
Oto rozwiązanie, które (1) nie wymaga żadnych zmian kodu ani punktów przerwania, a (2) zatrzymuje się po zakończeniu programu , aby zobaczyć wszystko , co zostało wydrukowane. Zatrzyma się po naciśnięciu F5 lub Ctrl + F5. Główną wadą jest to, że w VS2013 Express (zgodnie z testami) nie ładuje symboli, więc debugowanie jest bardzo ograniczone.
Utwórz plik wsadowy. Zadzwoniłem do mojego
runthenpause.bat
, o następującej treści:Pierwszy wiersz uruchomi dowolne podane polecenie i maksymalnie osiem argumentów. Druga linia ... pauza.
Otwórz właściwości projektu | Właściwości konfiguracji | Debugowanie
$(TargetPath)
(lub cokolwiek w „Poleceniu”).runthenpause.bat
.Teraz, po uruchomieniu,
runthenpause.bat
uruchomi aplikację, a po jej zakończeniu zatrzyma się, aby zobaczyć dane wyjściowe konsoli.Opublikuję aktualizację, jeśli wymyślę, jak załadować symbole. Próbowałem
/Z7
za to , ale bez powodzenia.źródło
po prostu wstaw jako ostatni wiersz kodu:
źródło
Możesz uruchomić swój plik wykonywalny z wiersza polecenia. W ten sposób możesz zobaczyć wszystkie dane wyjściowe. Lub możesz zrobić coś takiego:
i w ten sposób okno nie zamknie się, dopóki nie wprowadzisz danych dla
a
zmiennej.źródło
dodaj „| pause ”w polu argumentów poleceń w sekcji debugowania we właściwościach projektu.
źródło
pause
wydaje się działać tylko w plikach wsadowych i chociaż odbiera dane wejściowe z programu na STDIN, nie drukuje ponownie tego tekstu. Próbowałem zastępując|
z&&
, ale to nie miało żadnego wpływu - prawdopodobnie dlatego, że nie jest wykonywany z powłoki poleceń (cmd.exe).Wystarczy nacisnąć CNTRL + F5, aby otworzyć go w oknie zewnętrznego wiersza poleceń (Visual Studio nie ma nad nim kontroli).
Jeśli to nie zadziała, dodaj następujący kod na końcu kodu:
Poczekaj, aż naciśniesz klawisz, aby zamknąć okno terminala, gdy kod osiągnie koniec.
Jeśli chcesz to zrobić w wielu miejscach, umieść powyższy kod w metodzie (np.
private void Pause()
) I wywołaj,Pause()
gdy program osiągnie możliwy koniec.źródło
Nieco lepsze rozwiązanie:
na początku twojego programu.
Plusy:
cin.sync(); cin.ignore();
lewy zamiastsystem("pause");
)Cons:
źródło
Albo użyj:
cin.get();
lub
system("pause");
Pamiętaj, aby wykonać jedną z nich na końcu
main()
funkcji i przedreturn
instrukcją.źródło
Możesz także użyć tej opcji
źródło
W moim przypadku tego doświadczyłem, gdy utworzyłem projekt Empty C ++ w wydaniu społeczności VS 2017. Musisz ustawić podsystem na „Console (/ SUBSYSTEM: CONSOLE)” w obszarze Właściwości konfiguracji.
źródło
Visual Studio 2015 z importami . Ponieważ nienawidzę, gdy przykłady kodu nie dają potrzebnego importu.
źródło
Użyj
Console.ReadLine()
na końcu programu. Dzięki temu okno będzie otwarte, dopóki nie naciśniesz Enterklawisza. Szczegółowe informacje można znaleźć na stronie https://docs.microsoft.com/en-us/dotnet/api/system.console.readline .źródło