Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Informatik in der Schule (http://www.informatikerboard.de/board/board.php?boardid=21)
--- C printf Fehler (http://www.informatikerboard.de/board/thread.php?threadid=1395)


Geschrieben von InformaTiger am 20.02.2013 um 13:55:

  C printf Fehler

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?
verwirrt

Lg
InformaTiger



Geschrieben von Karlito am 20.02.2013 um 14:30:

  RE: C printf Fehler

Hallo.

Zitat:
Original von InformaTiger
[...] oder muss ich es einfach mit Zeilenvorschubskonstanten (\n) trennen?


Genau das...

VG,

Karlito



Geschrieben von InformaTiger am 20.02.2013 um 20:14:

  RE: C printf Fehler

Danke,
also gibt es aber in C sowas wie Console.WriteLine nicht? smile

Lg
InformaTiger



Geschrieben von Karlito am 20.02.2013 um 20:57:

 

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# Augenzwinkern 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



Geschrieben von InformaTiger am 20.02.2013 um 21:01:

 

Ja, das schon aber ich denke das WriteLine selbst zu schreiben überfordert mich im moment in C noch, da ich mich wie gesagt nicht wirklich damit auskenne. unglücklich
Was wären diese Zusatzbibliotheken? Header-Dateien?
Trotzdem vielen Dank.

smile

Lg
InformaTiger



Geschrieben von Karlito am 20.02.2013 um 21:18:

 

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



Geschrieben von InformaTiger am 20.02.2013 um 21:28:

 

Achso, das bedeutet dann bräuchte ich also eine externe Datei? verwirrt

Lg
InformaTiger



Geschrieben von Karlito am 20.02.2013 um 22:04:

 

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



Geschrieben von InformaTiger am 20.02.2013 um 22:15:

 

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



Geschrieben von Karlito am 20.02.2013 um 22:32:

 

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



Geschrieben von InformaTiger am 20.02.2013 um 22:39:

 

Ok, werd ich machen!
Danke für die Hilfe.
smile

Lg
InformaTiger


Forensoftware: Burning Board, entwickelt von WoltLab GmbH