Xcode Terminal Befehle benutzen

Talinsei

Cox Orange
Registriert
01.09.09
Beiträge
98
Hallo, ich arbeite mich gerade ein bisschen in die Programmiersprache C ein, um die Grundlagen zu erlenen. Ich habe jetzt einen Taschenrechner per C erstellt, der im Terminal ausgegeben wird. Wie kann ich denn jetzt einen schließen Befehl implementieren?
Ich kann ja nicht einfach printf("Killall Terminal"); benutzen.

Gruß Tim
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Was meinst Du mit "schliessen Befehl"?

In Terminal Applications (nicht Cocoa) würdest Du normalerweise
Code:
exit (EXIT_SUCCESS);
oder
Code:
exit (EXIT_FAILURE);
verwenden.

RTFM exit(3)

Alex
 

Talinsei

Cox Orange
Registriert
01.09.09
Beiträge
98
hm so klappt das irgendwie nicht. Ich hab einfach nen kleinen billigen Taschenrechnerprogrammiert.

#include <stdio.h>

int addieren(int Wert1, int Wert2) {
int sum;
sum=Wert1+Wert2;
return sum;
}

int subtrahieren(int Wert1, int Wert2) {
int sum;
sum=Wert1-Wert2;
return sum;
}

int multi(int Wert1, int Wert2) {
int sum;
sum= Wert1*Wert2;
return sum;
}

int divi(int Wert1, int Wert2) {
int sum;
if (Wert2==0) { printf("Division durch 0 nicht möglich");
} else { sum= Wert1/Wert2; }
return sum;
}

int main() {
int x=1;
do {
int eingabe;
int Wert1, Wert2;
int sum;
printf("-1- Addieren\n");
printf("-2- Subtrahieren\n");
printf("-3- Mulitplizieren\n");
printf("-4- Dividieren\n");
printf("-5- Beenden\n");
printf(" Bitte eingabe tätigen : ");
scanf("%i",&eingabe);

if( eingabe!=5) {
printf("Bitte Wert 1 eingeben\n");
scanf("%i",&Wert1);
printf("Bitte Wert2 eingeben\n");
scanf("%i",&Wert2);
}

switch (eingabe) {
case 1:
sum = addieren(Wert1,Wert2);
printf("%i\n", sum);
break;

case 2:
sum = subtrahieren(Wert1,Wert2);
printf("%i\n",sum);
break;

case 3:
sum = multi(Wert1,Wert2);
printf("%i\n",sum);
break;
case 4:
sum = divi(Wert1, Wert2);
printf("%i\n",sum);

case 5:
x = 2;
exit (EXIT_FAILURE);
break;


}
} while(x<=1);
}

Wenn ich die 5 drücke beenden sich das Programm aber das Terminal bleibt offen. Ich möchte dass das Terminal auch zugeht.
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Soll der Bildschirm explodieren, oder was stellst Du Dir vor?

Historisch gesehen war das Terminal ein echtes Gerät, zum Beispiel eine VT100 und vorher sogar einfach nur ein Drucker.

Dein Programm hat auch heute keine Kontrolle über das Terminal, es gehört dem Benutzer. Über Tricks und AppleScript kannst Du wahrscheinlich schon das Fenster schliessen, aber das gehört einfach nicht zum Leistungsumfang von klassischem C.

Alex

EDIT: Du kannst Dir natürlich auch Super User Rechte holen, und dann einen kill auf das Terminal absetzen. Das ist aber auch nicht schön.

EDIT2: Grundsätzlich kann es ja auch sein, dass Dein Programm nur Teil eines Scripts etc. ist. Da verbietet es sich, dem User einfach das Terminal wegzuschiessen.
 

Talinsei

Cox Orange
Registriert
01.09.09
Beiträge
98
nunja. Dann lassen wir das Fenster lieber mal offen. Danke euch ^^.

Hab es jetzt mit system("killall Terminal"); hinbekommen. Ist das so etwas wie mit dem Panzer zum Vorstellungsgespräch fahren xD?
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Hab es jetzt mit system("killall Terminal"); hinbekommen. Ist das so etwas wie mit dem Panzer zum Vorstellungsgespräch fahren xD?
Erinnert mich eher an den guten alten Sprengstoffgürtel.

BTW
Steht "Talinsei" für eine Kreuzung aus Taliban und Banzai ?
Wie nennst du dein Programm? "Taschenbomber.atta"?
Vergiss nicht, in den Projekteigenschaften neben 32- und 64-bit auch den 72-virgin-mode einzuschalten.
 
  • Like
Reaktionen: below

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Wie gesagt:
* Woher weisst Du, dass der User das Terminal geschlossen haben möchte?

* Woher weisst Du, dass der User das Program überhaupt über Terminal app steuert? Es könnte auch ssh oder telnet sein.

Das ist einfach Keine-Gute-Idee™, und nur gut, um Benutzer sehr ärgerlich zu machen

Alex