Variablen in Printf
-
Hallo,
wenn ichint Testarray[8]={0,1,2,3,4,5,6,7}; printf("Das erste Feld lautet: %d\n" "Das zweite Feld lautet: %d\n" "Das dritte Feld lautet: %d\n",Testarray[1], Testarray[2], Testarray[3]); getchar();
schreibe gefällt mir nciht das man schnell Fehler machen kann beid er Zuweisung..
In PAscal sähe das so aus
Write('Das erste Feld lautet: ',Testarray[1],'\n
Das zweite Feld lautet: ', Testarray[2] etcWie mache ich das gleiche in C, also das ich die geleich entsrpechend an die Stelle im Text setze?
-
Einfach:
printf("Das erste Feld lautet: %d\n", Testarray[1]); printf("Das zweite Feld lautet: %d\n", Testarray[2]); printf("Das dritte Feld lautet: %d\n", Testarray[3]);
? (Bzw das ganze in einer Schleife machen?)
Die Indices in C fangen im übrigen bei 0 an. Das was im Sprachgebrauch das erste Feld ist, ist hier
Testarray[0]
.
-
hm, ok, ich hatte gehofft man kann die Variablen wie in Pacal auch direkt in printf ansprechen.
Arrays fangen in Pascal auch bei 0 an, war mein Fehler
-
Timon k. schrieb:
hm, ok, ich hatte gehofft man kann die Variablen wie in Pacal auch direkt in printf ansprechen.
Das geht in C nicht, weil printf eine ganz normale Funktion ist, die auch nur in C geschrieben ist. In Pascal ist write etwas, das der Compiler nach speziellen Regeln behandelt, es ist unmöglich, sowas selbst als Prozedur zu schreiben. Es gehört zu den grundlegenden Designprinzipien der Sprache C, möglichst wenig Dinge im Sprachkern festzuschreiben und möglichst viel durch Bibliotheksfunktionen zu lösen.
Arrays fangen in Pascal auch bei 0 an, war mein Fehler
Arrays haben in Pascal den Indextyp, den man bei ihrer Deklaration angibt, ob sie nun bei 0, 1 oder -42 anfangen ist völlig willkürlich.