Seite 1 von 3

Diskussion C:Printf

Verfasst: Mi Jul 09, 2008 10:26 pm
von Xin
Mein Artikel. ;-)
(http://tutorial.proggen.org/doku.php?id=c:printf)

übernehme ich aus http://gc.xsd.de/pages/ckurs

TODO: ANSI-Sequenzen hinzufügen

Re: Diskussion C:Printf

Verfasst: Mi Jul 09, 2008 10:34 pm
von nufan
Vielleicht wäre es sinnvoll auch eine Liste der Sonderzeichen für andere Datentypen zu schreiben.
%d, %i int (integer)
%ld long int
%u unsigned int
%x, %X integer in hexadezimaler Schreibweise (hex)
%o integer in oktaler Schreibweise
%f Gleitkommazahl (float)
%lf double
%Lf long double
%e, %E Gleitkommazahl in Exponentialdarstellung
%c einzelnes Zeichen (character)
%s Zeichenkette (string)

Re: Diskussion C:Printf

Verfasst: Mi Jul 09, 2008 10:35 pm
von Xin
Jow, wäre eh reingekommen.
Dachte, die wäre im anderen Kurs schon drin gewesen.

Re: Diskussion C:Printf

Verfasst: Do Jul 10, 2008 3:22 pm
von Dirty Oerti
Ja, so eine Liste gehört dringend rein.

Ich hab die Dinger immer vergessen^^
Und musst se mir jedesmal aufs neue ausm Internet raussuchen :)

MfG
Daniel

Re: Diskussion C:Printf

Verfasst: Fr Jul 11, 2008 12:08 am
von Xin
Dirty Oerti hat geschrieben:Ja, so eine Liste gehört dringend rein.

Ich hab die Dinger immer vergessen^^
Und musst se mir jedesmal aufs neue ausm Internet raussuchen :)
printf kann noch einiges mehr, was in der Liste nicht drin steht... aber nach dem muss ich auch immer googlen... ;-)

Re: Diskussion C:Printf

Verfasst: Di Aug 26, 2008 10:25 pm
von nufan
Ich hab mir nochmal printf angesehen und habs leicht erweitert.
Fragen zu folgendem Beispiel:

Code: Alles auswählen

void Addiere(long Zahl1, long Zahl2)
{
  printf("%d plus %d ergibt %d\n", Zahl1, Zahl2, Zahl1+Zahl2);
}
 
void main(void)
{
  Addiere(4, 8);
}
1. Zahl1, Zahl2: sollte man Variablen nicht klein schreiben?
2. Integer (4, 8) werden übergeben und mit %d ausgegeben, aber mit long festgelegt. Müsste es nicht long int heißen und %ld? Oder einfach int bei den Parametern.
3. Wird hier eine eigene Funktion (void Addiere) verwendet. Das Kapitel Unterprogramme folgt jedoch erst später.

Re: Diskussion C:Printf

Verfasst: Di Aug 26, 2008 10:37 pm
von Dirty Oerti
dani93 hat geschrieben:Müsste es nicht long int heißen
long int ist soweit ich weiß das Gleiche wie long.
Auf meinem Computer ist sogar int das Gleiche wie long....
dani93 hat geschrieben:Das Kapitel Unterprogramme folgt jedoch erst später.
Irgendwie sollten wir das Tutorial besser strukturieren..

Re: Diskussion C:Printf

Verfasst: Di Aug 26, 2008 10:42 pm
von nufan
Irgendwie sollten wir das Tutorial besser strukturieren..
Leicht gesagt, da kommt man oft in eine Zwickmühle. Manchmal kann man nicht sagen, was zuerst kommen soll.

Re: Diskussion C:Printf

Verfasst: Mi Aug 27, 2008 12:52 pm
von fat-lobyte
dani93 hat geschrieben:Ich hab mir nochmal printf angesehen und habs leicht erweitert.
Fragen zu folgendem Beispiel:

Code: Alles auswählen

void Addiere(long Zahl1, long Zahl2)
{
  printf("%d plus %d ergibt %d\n", Zahl1, Zahl2, Zahl1+Zahl2);
}
 
void main(void)
{
  Addiere(4, 8);
}
dani93 hat geschrieben:1. Zahl1, Zahl2: sollte man Variablen nicht klein schreiben?
Variablen soll man so schreiben wie man will,so lange sie sind in einem Projekt durchgängig so genannt werden. Das gilt übrigens für alle Konventionen zur Formatierung und Nomenklatur: Lasst euch ja nicht einreden, dass es "die Richtige" formatierung gibt, es gibt nämlich in C++ extrem viele arten.
dani93 hat geschrieben:2. Integer (4, 8) werden übergeben und mit %d ausgegeben, aber mit long festgelegt. Müsste es nicht long int heißen und %ld? Oder einfach int bei den Parametern.
Das ist Richtig. Wenn man ganz korrekt wäre, müsste man es so schreiben, denn ein Long wird nunmal mit einem "%ld" ausgegeben. Praktisch allerdings ist ein Long "meistens" gleich groß wie ein int. Nur Garantie gibt es dafür keine.

Re: Diskussion C:Printf

Verfasst: Mi Aug 27, 2008 1:41 pm
von nufan
fat-lobyte hat geschrieben:Das ist Richtig. Wenn man ganz korrekt wäre, müsste man es so schreiben, denn ein Long wird nunmal mit einem "%ld" ausgegeben. Praktisch allerdings ist ein Long "meistens" gleich groß wie ein int. Nur Garantie gibt es dafür keine.
Für den Leser (vor allem wenn es ein totaler Anfänger ist) doch etwas verwirrend, oder?