println() auch in C nutzbar?
-
Hallo ihr Lieben,
hin und wieder stoße ich auf Code, bei dem println() in C genutzt wird. Aber bei mir klappt das nicht und ich habe auch im Gespräch mit einem Profi gehört, dass das von Java ist, aber eben nicht zu C gehört.
Falls es das doch git - was muss ich machen, damit es auch bei C klappt?Vielen Dank für die Hilfe bei dieser absoluten Anfängerfrage ...
-
-
Hallo Quiche Lorraine,
ja, mit printf arbeite ich auch immer. Aber println war mir unbekannt und genau das klappt bei mir eben auch nicht. Daher meine Frage, woran das liegt. Macht das Skript Fehler oder übersehe ich etwas?
-
@Hawaiihemd println() gehört nicht zur C-Standard-Library.
Wenn das nur ein Linefeed ausgibt, macht das
putchar('\n');
Oder man schreibt gleich im vorhergehenden printf ein \n in den Formatstring.Edit:
Man kann auch ein Makro machen
#define printeln() putchar('\n')
wenn man unbedingt (warum auch immer) println benutzen möchte
-
"println() gehört nicht zur C-Standard-Library." - Okay, das ist schonmal hiflreich. Danke Dir!
Aber bekäme ich das durch das Einbinden einer speziellen Library dennoch hin oder doch immer printf() mit \n am Ende?
-
Versuch´ nicht C auf Biegen und Brechen wie eine andere Programmiersprache aussehen zu lassen. Überleg dir, welches Verhalten du brauchst und welche Möglichkeiten es in C gibt, das umzusetzen.
printf()
ist wirklich jedem C-Programmierer geläufig und sie erkennen auch, welcher Parameter bzw. Formatvorlage was tut. Das ist beiprintln()
vielleicht nicht der Fall.
-
@Hawaiihemd sagte in println() auch in C nutzbar?:
Aber bekäme ich das durch das Einbinden einer speziellen Library dennoch hin oder doch immer printf() mit \n am Ende?
Gut, das Edit hat sich jetzt überschnitten.
Das println() braucht man in anderen Sprachen, wenn man mit einem print() (ohne f) eine Variable ausgibt.
Diese print erkennen den Typ der Variable und geben auch nur den Wert aus.
Das gibt es in C auch nicht. Da hast du (nur)printf()
mit dem Formatstring - und da kannst ja das \n mit angeben.
-
Alles klar, das hilft mir schon weiter. Vielen Dank Euch!
-
@Hawaiihemd Es gibt auch noch
puts()
Das hängt an den String automatisch ein\n
an.Also
puts("");
geht auch.
Der Compiler sollte auch einprintf("\n");
erkennen und in das putchar wandeln (wenn er optimieren darf).