PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zu doof für C brauche Hilfe...


matzekahl
2006-07-13, 17:56:09
Moin Leude...

ich brauche ein wenig Hilfe mit ein paar Funktionen die C betreffen.

Ich hätte mal gern gewußt, was "int main (int argc, char *argv [])" mir diese Funktion macht und wie ich sie nutzen kann? Die Forderung wäre dabei ein Menü zu erstellen, welches mir die Wahl lässt, zwischen zwei Eingaben zu entscheiden (z.B <Anzahl> <Größe>).

Ach ja und zuletzt noch, wenn ich an eine Schnittstelle einen Befehl in Hex senden möchte, wie macht man das sinnvoll? (Warscheinlich mir write? aber dann wie genau?)

noid
2006-07-13, 18:09:47
main ist der einsprungspunkt in dein programm, argc die anzahl der übergebenen parameter (mit funktionsname), argv der array mit den argumenten als char-zeichenketten.

aber irgendwie verstehe ich noch nicht ganz was du eigentlich machen willst.

Coda
2006-07-13, 18:19:23
matzekahl[/POST]']ich brauche ein wenig Hilfe mit ein paar Funktionen die C betreffen.
Ich glaube eher du brauchst erstmal ziemlich viel Hilfe in C ;)

TheGamer
2006-07-13, 18:24:08
Coda[/POST]']Ich glaube eher du brauchst erstmal ziemlich viel Hilfe in C ;)

Nach der Frage des Threadstartes zu urteilen nach würde ich auch sagen das er zuerst ziemlich viel Hilfe in C braucht und nicht mit Funktionen

matzekahl
2006-07-13, 18:35:31
Ich bin ja dabei zu lernen. Mir ging es eher um argc und argv.

Mir wurde eine Aufgabe gestellt um eine getopt funktion zu nutzen. Diese wirderum hat doch was mit argc und argv zu tun oder???
Leider kann ich mir den Nutzen der beiden Ausdrücke nicht erklären. Daher dachte ich es gäbe einige Beispiele, um zu sehen wie es funktioniert...

TheGamer
2006-07-13, 20:29:44
matzekahl[/POST]']Ich bin ja dabei zu lernen. Mir ging es eher um argc und argv.

Mir wurde eine Aufgabe gestellt um eine getopt funktion zu nutzen. Diese wirderum hat doch was mit argc und argv zu tun oder???
Leider kann ich mir den Nutzen der beiden Ausdrücke nicht erklären. Daher dachte ich es gäbe einige Beispiele, um zu sehen wie es funktioniert...

Naja getopt ist halt eine GNU Bibliothek fuer verarbeiten von Kommandozeilen Arguemnten.

argc = die Anzahl der gegebenen Argumente und argv sind halt die argument selber. Du musst halt schauen wieviel es sind (argc) und dann auslesen (argv[0......n]). Dann pruefen ob das gebrauchte da ist und eben mit dem dann weiterarbeiten. Je nach Fall des Arguemntes im Programm dann eben dies oder das machen

Entil'Sar
2006-07-13, 22:20:19
Praktisch heißt das ganze du startest dein Programm und gibst noch ein paar Parameter mit an. Sagen wir mal "foo.exe -p -q -r". Dann wäre argc = 3 da drei Parameter angegeben sind. Willst du jetzt wissen, wie die Parameter lauten musst du die argv ansehen und zwar argv[1] für den ersten, argv[2] für den zweiten usw. Parameter. Das ganze sind dann char* die du weiterbenutzen kanns wie immer du lustig bist.

mithrandir
2006-07-14, 08:10:41
Ich dachte, in C starten Arrays mit Index 0 und in den Argumenten wird auch der Programmname an erste Stelle geführt?

Simon
2006-07-14, 09:44:27
Entil'Sar[/POST]']Praktisch heißt das ganze du startest dein Programm und gibst noch ein paar Parameter mit an. Sagen wir mal "foo.exe -p -q -r". Dann wäre argc = 3 da drei Parameter angegeben sind.
Falsch. argc wäre 4 bei deinem Beispiel :P
Im ersten Eintrag des Argument-Vectors steht immer der Name des ausführenden Programms.

Entil'Sar
2006-07-14, 12:41:31
mithrandir[/POST]']Ich dachte, in C starten Arrays mit Index 0 und in den Argumenten wird auch der Programmname an erste Stelle geführt?

Doch die Arrays starten bei 0. Allerdings steht an der stelle 0 in diesem Fall der Name des gestarteten Programms. Deshalb fängt man bei 1 an, wenn man "nur" die Argumente haben will.

Simon[/POST]']Falsch. argc wäre 4 bei deinem Beispiel :P
Im ersten Eintrag des Argument-Vectors steht immer der Name des ausführenden Programms.

Okay hast gewonnen, da hatte ich was falsches im Kopf. ;(

Gast
2006-07-14, 16:39:34
matzekahl[/POST]']Moin Leude...

ich brauche ein wenig Hilfe mit ein paar Funktionen die C betreffen.

Ich hätte mal gern gewußt, was "int main (int argc, char *argv [])" mir diese Funktion macht und wie ich sie nutzen kann? Die Forderung wäre dabei ein Menü zu erstellen, welches mir die Wahl lässt, zwischen zwei Eingaben zu entscheiden (z.B <Anzahl> <Größe>).

Ach ja und zuletzt noch, wenn ich an eine Schnittstelle einen Befehl in Hex senden möchte, wie macht man das sinnvoll? (Warscheinlich mir write? aber dann wie genau?)also das sind ja gleich drei Wünsche auf einmal. Das geht nun wirklich nicht ;)

Zu der Geschichte mit int main wurde dir ja schon was gesagt.
Für das mit dem Menü wirst du wohl eine API für GUI-Programmierung benötigen. Unter Windows wäre da z.B. die Win32 API. Das hat dann aber nicht mehr ganz so viel mit der Sprache C an sich zu tun. Auch hat man da üblicherweise statt main() eine Funktion WinMain().
Selbiges gilt wenn du Schnittstellen ansprechen willst, das wird dann ebenfalls sehr betriebssystemspezifisch. Um z.B. Daten über einen Comport zu senden, gibt es in der Win32 API eine Funktion WriteFile().