Variablen in Printf



  • Hallo,
    wenn ich

    int 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] etc

    Wie 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.


Anmelden zum Antworten