Przerwanie programu i wyświetlenie komunikatu

0

Witam.
Chciałbym na poziomie funkcji obsłużyć błąd, wyświetlić go i zamknąć program.

struktura programu:

funkcja1();
funkcja2();

main()
{
	funkcja1();
	funkcja2();
}

Teraz w funkcja1() jest warunek if(memcmp()) i przy błędnym sprawdzeniu chciałbym zamknąć programi wyświetlić komunikat, żeby funkcja2() już się nie wykonywała.
exit(0); zamyka mi program i nie pozwala na wyświetlenie niczego.
Co zrobić w takiej sytuacji?

0

Rzucić wyjątek? :-P

0

Wyświetl komunikat zanim wywołasz exit?

0

No jak wywołam exit to się program zamknie od razu i się nic nie wyświetli, chcialbym poczekać i samemu (kliknieciem) zamknąć program

0

A jak wypiszesz coś przed zamknięciem to się wyświetli i dopiero zamknie. Nie rozumiem problemu.

0

Prawda to co mówisz, lecz zamknie tak szybko, że normalny człowiek tak szybko nie przeczyta :D

1

Normalny człowiek uruchamia aplikację konsolową z poziomu konsoli, nie poprzez dwuklik na nią.

0

Aha, czyli twoim problemem nie jest wyświetlanie komunikatu, tylko zatrzymanie konsoli po zakończeniu działania programu. Użyj jakiegoś nowoczesnego IDE albo odpalaj z konsoli.

0

@Patryk27: jakoś kompilator nie chce się stosować do twoich zaleceń -.-

1

Co ma do tego kompilator?

0

@kq: Visual Studio 2017

0

visual studio keep console open w Google.

0
if (!memcmp()) {
			//robi jeśli się zgadza
}
else{
	cout << "Wyswietl tekst" << endl;

	system("pause");
	exit(0);
}

Takie coś działa, jak to zrobić 'bardziej elegancko?', jak się powinno takie sytuacje obsługiwać ?

1

Rzuć wyjątek.

1

Jak piszesz program konsolowy, to odpalasz go z konsoli, i po prostu wychodzisz. Jak testujesz w IDE to zrób sobie breakpointa na końcu programu albo użyj odpowiedniej opcji w samym IDE (nie znam VS konkretnie)

0
JareKanarek napisał(a):

Takie coś działa, jak to zrobić 'bardziej elegancko?', jak się powinno takie sytuacje obsługiwać ?

:D

W windowsie jak pewnie zauważyłeś zazwyczaj wylatuje komunikat program przestał działać i tyle.

Firefox wyświetla komunikat i możliwość zgłoszenia błędu, a reszta robi jakieś logi lub zwraca id błędu.
Potem %errorlevel% możesz sprawdzić, ewentualnie wyświetlić jakiś stosowny komunikat, albo zabezpieczyć się przed możliwością wykonania takiego błędu, żeby program był bez błędów.

0

_getch() przez zamknięciem?

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