Wann kann ich richtige Programme schreiben?
-
Hallo liebe C-Gemeinde,
Ich programmiere jetzt schon seit ca. 2-3 Jahren Webseiten mit PHP und MySQL und würde mich als fortgeschritten bezeichnen.
Nun würde ich gerne mit C anfangen und habe mir auch schon das Buch "C 'easy'" vom Markt+Technik-Verlag geholt. Ein sehr gutes Buch, wie ich finde.
Die ersten "Hallo Welt"-Programme etc. habe ich natürlich hinter mir und die langweilen mich, um ehrlich zu sein. Ich bin ja schon mit einer sehr ähnlich Syntax von PHP vertraut und bräuchte jetzt mal etwas Motivation von euch.Welche einfachen und nützlichen Programme kann ich denn als Anfänger schreiben (Es müssen (noch) Konsolenapplikationen sein)?
Grundsätzlich hätte ich mal Interesse eine Art WebCrawler zu schreiben, habe aber keine Ahnung, wie man so etwas umsetzt und in wieweit man C schon beherrschen muss, bzw. welche Kenntnisse nötig sind.Danke schon mal für die Antworten!
Macks
-
Es ist eine Sache, die Programmiersprache zu beherrschen und eine zweite, externe Bibliotheken und andere Techniken benutzen zu können.
Wenn du soweit bist, daß du alle Schlüsselwörter von C beherrschst und du damit komplexere Programme schreiben kannst, dann solltest du dir die weiteren Standard-Libraries von C ansehen, z.B.
- <string.h> Stringverarbeitung
- <stdio.h> Ein- und Ausgabe auf Konsole und Dateien (FILE
- <math.h> Math. Funktionen
- ...Für einen Web-Crawler benötigst du jedoch betriebssystem-spezifische Funktionalität (sog. Socket-Programmierung).
Hier müßtest du dich dann unter Windows mit der WinAPI auseinandersetzen.
Für Sockets gibt es die WS2_32.dll (winsock2.h), in welcher die benötigten Funktionen drin enthalten sind, z.B. send() und recv().Unter Unix u. Linux gibt es einen sog. POSIX-Standard, welcher ähnliche Funktionalität bietet.
-
Wenn du soweit bist, daß du alle Schlüsselwörter von C beherrschst und du damit komplexere Programme schreiben kannst
ALLE Schlüsselwörter??
Bist du dir sicher, dass du wirklich alle kennst und beherrschst??
-
Die reinen Sprachen-Schlüsselwörter sind doch wirklich überschaubar, behaupte ich mal. Aber noch was anderes, ist Socket-Programmierung immer Systemabhängig, oder gibts da auch was schönes portables?
-
ALLE Schlüsselwörter??
Bist du dir sicher, dass du wirklich alle kennst und beherrschst??Ja, ich bin mir da ziemlich sicher (schließlich habe ich schon einen C-Frontend-Compiler geschrieben -)
Ok, als Ratschlag war das vielleicht etwas übertrieben, aber ich wollte damit nur ausdrücken, daß viele Leute noch nicht über ihr erstes "Hello World"-Programm hinaus sind und dann schon nach Socket-Programmierung fragen...
(klar gibt es einige Schlüsselwörter, welche man weniger verwendet (wie z.B. asm, union oder volatile), aber alle restlichen sollte man einwandfrei beherrschen, d.h. wissen das es sie gibt und wann und wie man sie einsetzt).
-
MasterCounter schrieb:
ist Socket-Programmierung immer Systemabhängig, oder gibts da auch was schönes portables?
sockets sind zwar nicht 100%ig portabel (wenn man mal BSD und windoofs) vergleicht, aber sie sind sich sehr änhlich, so dass man mit ein paar #defines die unterschiede ausbügeln kann.
Th schrieb:
(klar gibt es einige Schlüsselwörter, welche man weniger verwendet (wie z.B. asm, union oder volatile)
ja? die verwende ich auch öfters. nur nicht 'auto', das hab' ich noch nie verwendet.
-
Welche einfachen und nützlichen Programme kann ich denn als Anfänger schreiben (Es müssen (noch) Konsolenapplikationen sein)?
Schreib halt einen Lisp-Interpreter. Da brauchst du gar keine fremden Bibliotheken.
-
cheopz schrieb:
Schreib halt einen Lisp-Interpreter.
er sagte einfach und nützlich. wenn ein lisp-interpreter auch nicht einfach ist, nützlich ist er ganz bestimmt nicht.
-
Lispler schrieb:
cheopz schrieb:
Schreib halt einen Lisp-Interpreter.
er sagte einfach und nützlich. wenn ein lisp-interpreter auch nicht einfach ist, nützlich ist er ganz bestimmt nicht.