• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Xcode Foundation Command Line

JKTruz

Jamba
Registriert
18.09.10
Beiträge
55
Hallo,
ich habe mal ein paar fragen zu Command Line Tools in Xcode. Ich habe als Tamplate ein Foundation Command Line Tool gewählt. Nun kann ich zwar Text ausgeben, aber weder eingeben lassen noch irgenwas anders. Sprich unterscheidet sich das zZ in meinen Augen sehr von Xcode das ein ein UI (Mac und iPhone) gebunden ist. Ich brauche zur Zeit nur ein paar Sachen.

1. Wie lese ich Text ein?
2. Wie benutze ich Parameter die beim übergeben worden sind?

Das brauche ich für mein zur zeitiges Projekt, da ich aber denke das ich den Spaß noch mal brauchen wollte ich auch fragen ob jemand ein gutes Buch ode OpenBook (eBook) kennt.

Danke
 
Hallo,

Text ausgeben tust du wahrscheinlich mittels printf(...) nehme ich mal an. Dies ist eine C-funktion. Entsprechend gibt es scanf(..., ...) zum Einlesen. Oder du machst die Eingabe als Argumente beim Starten des Programmes.

Methode scanf():

Code:
#include <stdio.h> // <-- hier befinden sich printf und scanf

int main(void) {
    int age = 0;
    // Hallo an den User:
    printf("Hallo, geben Sie bitte Ihr Alter ein:\r\n");
    // Alter einlesen:
    scanf("%d", &age);    // <-- liest einen integer ([SIZE=2]d[/SIZE]igit) ein. Als Argument übergibst du einen pointer zum integer, in welchen die Eingabe geschrieben werden soll.
    // Alter ausgeben:
    printf("Sie sind %d Jahre alt.\r\n", age);
    return 0;
}
das Ganze sieht dann so aus:

Code:
Hallo, geben Sie bitte Ihr Alter ein:
20
Sie sind 20 Jahre alt.
Dieser Code ist zwar reines C, aber da Obj-C ein C-superset ist, lässt sich das genauso auch innerhalb Obj-C Code lösen.

Methode Argumente:

Code:
#include <stdlib.h>    // <-- atoi() ist hier

int main(int argc, char *argv[]) {
    int age = 0;
    // Testen, ob beim Start ein Argument angegeben wurde:
    if (argc < 2) { // nur ein Argument ist vorhanden (der Name des Programmes), also usage-string ausgeben und beenden.
        printf("Usage: %s AGE", argv[0]);
        return 1;
    }
    age = atoi(argv[1]);    // zweites argument (eigentlich das erste, wenn man den Programmnamen nicht zählt) in einen integer umwandeln. Falls argv[1] kein Integer ist, wird 0 in age geschrieben.
    // Alter ausgeben:
    printf("Sie sind %d Jahre alt.\r\n", age);
    return 0;
}
das Ganze sieht dann so aus (angenommen, du startest das Programm in der Kommandozeile mit './programm 20'):

Code:
Sie sind 20 Jahre alt.
Dieser Code ist auch wieder reines C.

Ich hoffe, das hilft ein Wenig. Es gibt noch x andere Möglichkeiten, Eingaben vom Benutzer zu erhalten, über irgendwelche Bibliotheken für C/Obj-C zum Beispiel.

Gruss ppocket

PS: Wenn du Obj-C programmierst, brauchst du weder stdio noch stdlib zu inkludieren in deinen Code, die werden mit

Code:
#import <Cocoa/Cocoa.h>
automatisch mit eingefügt.