005
20.11.2003, 21:10 Uhr
0xdeadbeef
Gott (Operator)
|
sscanf und printf sind Funktionen, die in der Header-Datei stdio.h deklariert sind. Zeile für Zeile:
bindet den Standard-Header stdio.h ein. Genaugenommen ist es eine Präprozessor-Direktive...der Präprozessor geht über deinen Quellcode, bevor der eigentliche Compiler dran ist. #include <stdio.h> bedeutet soviel wie "such im Include-Path nach einer Datei namens stdio.h und schreib ihren Inhalt hier hin". Header-Dateien enthalten in der Regel Funktions- und in C++ auch Klassendeklarationen, aber nicht den gesamten Quellcode. Der Sinn ist, dem Compiler mitzuteilen, dass die entsprechende Funktion da ist; nicht, was sie macht.
C++: |
int main(int argc, char *argv[]) {
|
deklariert die Funktion "main" mit einem Rückgabewert vom Typ int (Ganzzahl) und zwei Parametern, einem int names argc und einem string-Array namens argv. Per Konvention gibt die Shell main als Parameter die Anzahl der Parameter und die Parameter mit (den Namen der ausführbaren Datei mitgezählt). In deinem Fall ist argc = 2, argv[0] = 'programmname' und argv[1] = "17435-20". Das '{' öffnet einen Block von Anweisungen, in diesem Fall den Funktionskörper von main.
deklariert zwei Variablen vom Typ int.
C++: |
sscanf(argv[1], "%d-%d", &var1, &var2);
|
Das ist eine Funktion, die in der stdio.h deklariert wurde. Sie parst einen String und schreibt die geparsten Werte in die Argumente ab dem dritten. Das erste Argument ist der String, der geparst werden soll. Das zweite ist der Format-String, der die Form des Strings, den sscanf erwartet, angibt. %d steht dabei stellvertretend für eine Zahl, die an der Stelle im String steht und in eines der späteren Argumente geschrieben werden soll. &var1 ist die Speicheradresse, an der var1 gespeichert ist, und an die sscanf den geparsten Wert schreiben soll. Das funktioniert natürlich nur, wenn argv[1] die im Format-String angegebene Form hat.
C++: |
printf("Variable1: %d\nVariable2: %d\n", var1, var2);
|
Schreibt die angegebenen Werte (ab dem zweiten Argument) entsprechend dem Format-String (erstes Argument) auf die Standardausgabe, im Zweifel also die Konsole (Bildschirm). %d steht wieder für ne Zahl, die sich printf aus einem der späteren Argumente greift, \n ist ein Zeilenumbruch.
return 0; bedeutet, dass main 0 zurückgibt. Per Konvention bedeutet das soviel wie "alles ist gut gelaufen". '}' macht den Block, den wir weiter oben geöffnet haben, wieder zu, in diesem Fall ist das das Ende des Programms. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |