C printf Fehler |
InformaTiger
Tripel-As
Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol
|
|
Hallo,
ich habe neulich einen einfachen Code in C geschrieben, der einfach mehrere Wörter ausgeben soll. Beim Ausführen des Codes ergab sich allerdings folgendes Problem: er schrieb zwar alles raus, aber zusammengeklebt. Ist printf also nicht dasselbe wie in C# ConsoleWriteLine? Oder muss ich es einfach mit Zeilenvorschubskonstanten (\n) trennen?
Lg
InformaTiger
__________________ Why do Java developers wear glasses? Because they can't C#
|
|
20.02.2013 13:55 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo.
Zitat: |
Original von InformaTiger
[...] oder muss ich es einfach mit Zeilenvorschubskonstanten (\n) trennen?
|
Genau das...
VG,
Karlito
|
|
20.02.2013 14:30 |
|
|
InformaTiger
Tripel-As
Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol
|
|
Danke,
also gibt es aber in C sowas wie Console.WriteLine nicht?
Lg
InformaTiger
__________________ Why do Java developers wear glasses? Because they can't C#
|
|
20.02.2013 20:14 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Ist mir ohne Zusatzbibliotheken nicht bekannt. WriteLine macht ja nichts anderes als einen Zeilenumbruch am Ende hinzufügen... Ist nur Komfort und Komfort gibt es in C nicht so häufig wie in C#
Trotzdem gute Sprache. Du kannst dir ja ein WriteLine selbst schreiben. Ist eine schöne übung, da du printf "kapseln" musst. Das Besondere ist dabei das Übergeben beliebig vieler Argumente.
VG,
Karlito
|
|
20.02.2013 20:57 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo,
Header-Dateien machen normalerweise nur die Schnittstellen bekannt. D,h, da stehen normalerweise nur Definitionen von Datenstrukturen und Funktionsprototypen drin...
Bibliotheken gibt es in verschiedenen Formen. Bibliotheken, welche zur Laufzeit des Programms erst geladen werden heißen unter Windows dll...
VG,
Karlito
|
|
20.02.2013 21:18 |
|
|
InformaTiger
Tripel-As
Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol
|
|
Achso, das bedeutet dann bräuchte ich also eine externe Datei?
Lg
InformaTiger
__________________ Why do Java developers wear glasses? Because they can't C#
|
|
20.02.2013 21:28 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Im Prinzip ja.
C# macht das auch so. Es nutzt ja das .net Framework. Dies ist auch in Form von Bibliotheken vorhanden, nur dass es zentral hinterlegt und zugreifbar ist. Zusätzliche Bibliotheken kann man aber auch nachladen. Dazu muss man einen Verweis darauf im Projekt im Visual Studio konfigurieren.
C nutzt natürlich auch Biblotheken. Die Funktionalität, auf welche du z.B. mit stdio.h und stdlib.h zugreifst, sind in der so genannten Standardbiblothek hinterlegt. Es gibt bestimmte Verzeichnisse, in denen diese Bibliotheken gefunden werden. Deshalb merkt man oft manchmal nicht, dass man welche verwendet.
VG,
Karlito
|
|
20.02.2013 22:04 |
|
|
InformaTiger
Tripel-As
Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol
|
|
Ok,
dass C# das auch macht war mir bis jetzt gar nicht bewusst. In C wenn ich auf stdlib.h oder stdio.h zugreife heißt das, dass die Standardbibliothek aufgerufen wird und diese Definitionen von Datenstrukturen und Funktionsprototypen werden davon entnommen, habe ich das richtig verstanden?
Lg
InformaTiger
__________________ Why do Java developers wear glasses? Because they can't C#
|
|
20.02.2013 22:15 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Das ist der Punkt an dem ich mich auch auf dünnem Eis bewege. Auf jeden fall ist es so, dass die .h- Dateien nur beschreiben was es gibt. Die konkrete Funktionalität ist dann woanders.
Header-Dateien sind reine Text-Dateien. Die #include <> -Direktive weist nur den so genannten Präprozessor an, den Inhalt der Header-Datei in die .c-Datei zu kopieren.
Schau dir am besten mal die Header an. Das ist normaler C-Quelltext, nur dass darin normalerweise nur Deklarationen vorkommen und keine konkreten Implementierungen. Und halt evtl Präprozessor-Makros und -Direktiven.
Der Präprozessor ist ein Programm, was eigentlich nur sowas wie Textersetzungen macht. Lies dir mal die Wiki-Artikel durch:
- Präprozessor
- C-Präprozessor
Vielleicht ist auch das Buch für dich interessant:
C von A bis Z
Das ist frei Online verfügbar...
VG,
Karlito
|
|
20.02.2013 22:32 |
|
|
|