Zamknięcie programu w C, problem

0

Cześć,
mam do napisania program który nie będzie nic robił oprócz tego że wyświetli dowolny tekst i następnie zamknie się po naciśnięciu Escape'a, piszę pod DeV-em C++ ale żaden ze sposobów nie był skuteczny. Oto moje próby.
Jeżeli możecie ocenić czy w ogóle podążam w dobrym kierunku i czy możecie z tym kodem coś zrobić, bo w ogóle nie działa.

To pierwsza proba.

#include <stdio.h>
#include <conio.h> 

int main()
{
printf("Blablabla\n"); 
system ("pause > null");
return 0; 
}
 

To druga próba.

#include <stdio.h> 
#include <conio.h>

int main()
{
char temp;
printf("Blablabla\n");
while ((temp = getchar()) != 27)
{	    
// JAK MOGE WYWOLAC SYGNAL SIGNIT() ? 
return 0; 
}

A tu trzecia:


// ta sama spiewka tylko ze
if(_kbhit() && getch()==ESC)
{

// TU TEZ CHCE WYWOLAC SYGNAL SIGNIT()

Ogolnie, to program ma dzialac pod Windowsem, moze byc dev czy visual studio, ważne żeby działało.
Bo na razie to działa tylko klikanie enterem ;/

0

http://cpp0x.pl/kursy/Kurs-C++/Obsluga-klawiatury-za-pomoca-conio-h/320
tutaj masz cały program z przykładem wciśnięcia ESC

przede wszystkim ZMIEŃ środowisko z dev c++ na jakiekolwiek inne (np codeblocks). Pisząc w devie sam prosisz się o kłopoty.

0

Hmm... ale to przykład z C++ a ja szukam tylko pod czyste C.

Mam jeszcze takie pytanie, pewnie będzie bardzo prostackie, ale... kto pyta nie błądzi.

Otóż, po naciśnięciu ESC w tym programie program się zamyka, ale dopiero po dwukrotnym naciśnięciu ESC zamyka się okienko w którym jest wyświetlany.
Nie da się zrobić tak by od razu zabijał proces i zamykał okienko ? Coś takiego jak jak wywołanie signit() tylko że bez jakiejś skomplikowanej/fikuśnej implementacji, ktorej nie zrozumiem.

0

akuratnie pod C także jest ta sama bibloteka conio.h
dlaczego tak się dzieje? Nie wiem ponieważ nie wiem jaki kod kompilujesz i w czym (jeżeli w devie to nawet nie wklejaj kodu)

0

Bardzo prawdopodobny scenariusz:

  1. Program wykonuje pewne operacje.
  2. W petli CZEKASZ na nacisniecie klawisza.
  3. Klawisz ten wywoluje zamkniecie aplikacji (return 0 czy exit() czy cokolwiek innego).
  4. Zamkniecie aplikacji (UWAGA!) nie powoduje zamkniecia terminala, w ktorym ta aplikacja zostala uruchomiona.

Rozwiazanie:
Uruchom program przez double-click, a nie w IDE/terminalu.

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