Am Montag, 19. Mai 2003 17:03 schrieb Daniel Feist:
On Mon, 19 May 2003, Vinzent Hoefler wrote:
At 16:45 19.05.03, Daniel Feist wrote:
Daniel Feist wrote:
Ich verstehe nicht ganz, warum man jetzt an das Ende der String a,b,c schreibt - man hat das alles doch schon mit a=%d usw. gemacht!
mit %d plazierst du eine Markierung, an der ein Integer ausgegeben werden soll. Nach dem Formatierungsstring gibst du dann die Varaiblen an, die ausgegeben werden sollen.
Aber wir haben doch 'a' schon vorher angegeben -
Ja, huebsch. Fuer den Compiler ist das eine simple nichtssagende Textkonstante.
'%d' gibt ja nur den Datentyp (Integer) aus.
%d gibt primaer gar nichts aus. %d ist ein Platzhalter, ein sogenannter Formatstr, mit der Du der printf()-Routine sagst, dass da noch irgendwo ein Parameter rumliegt, der ein bestimmtes Format hat. Dieses %d wird dann eben durch den (menschenlesbar formatierten) Inhalt Parameter, der folgt, *ersetzt*. Der Parameter selbst fehlt aber noch.
Ich verstehe nicht, warum das dann nochmal ganz hinten angegeben werde muss!
Ich meinte eigendlich, warum vor a=%d das 'a' angegeben werden muss und warum am Schluss dann nochmal 'a' angegeben wird! Mir kam das komisch vor mit den 2 'a's. Man könnte ja auch das erste a weglassen.
Damit der Laufzeitinterpreter von printf() das %d auch mit dem richtigen aktuellen Wert von a fuettern kann. Probier doch einfach mal aus, was passiert, wenn Du a, b, c nicht angibst.
Dann bekomme ich ein Zahlengewirr - das geht auf jeden Fall nicht!
Trotz allem - Vielen Dank für deine tatkräftige Mithilfe!
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-programming-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-programming-help@suse.com
Gruss Daniel -- clusterix.perl@gmx.de
Hallo *, um es nochmal klar zu machen: int main() { int a; /* Deklaration von Variablen */ int b; int c; a=4; /* Inizialisierung der Variablen */ b=3; c=12; printf("der Wert von int a=%d, b=%d, c=%c"\n, a,b,c); ^^^ ^^^ ^^^ # hier wird nur ein string ausgegeben. Die Platzhalter %d und %c werden # mit den werten der Variablen gefuellt die am ende (nach dem Komma) # angegeben werden (a,b,c). # Das ganze koennte auch so aussehen: printf("blabla %d laber %d schaumermal=%c\n", a, b, c); return 0; } -- __________________________________________________________ Martin Schmiderer | phone: +49 (0)7071-9457-225 science + computing ag | fax: +49 (0)7071-9457-221 Hagellocher Weg 71-75 | smtp: m.schmiderer@science-computing.de D-72070 Tuebingen | http: www.science-computing.de