Arrayinhalt in eine Variable packen.



  • int i[8]={1,2,3,4,5,6,7,8};
      char str[128];
      sprintf(str,"Werte des Arrays: %d, %d, %d, %d, %d, %d, %d, %d",i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7]);
      printf(str);
    

    So klarer? Ist das, was du willst? Alle ints sind in einer String-Variable.



  • Ui, jetz bin ich etwas durcheinander, gebt mir ein bischen um das mal zu analysieren und zu verstehen, falls es nichts wird, geb ich euch bescheid.



  • Klärt vielleicht ein wenig besser auf: http://msdn.microsoft.com/de-de/library/ybk95axf(VS.80).aspx



  • Hmm ne so richtig versteh ich die Nummer noch nicht.

    Ich hab ja 8 Integer in meinem Array, (das sind jeweils 0 oder 1(Binär halt)).
    Jetz möchte ich mit praktisch das Byte ausgeben lassen.
    Ich bin mit den Formaten noch nicht so ganz vertraut, da mir die erfahrung fehlt.
    Wie gesagt ich machs noch nicht lang.

    Ich lese dein Beispiel jetz so:

    int i[8]={1,2,3,4,5,6,7,8}; (kein Plan, wie ich das verstehen darf)
    char str[128]; (da würd jetz ein "str" array angelegt das 128 stellen reserviert bekommt)
    sprintf(str, (damit wird formatiert in das array geschrieben)
    printf(str); (und hier wirds ausgegeben)

    Wenn ich da schon irgendwo n falschen Verständnis haben sollte und das nicht richtig interpretiere, belehrt mich. Ich brauchs noch.

    invalid types `int[int]' for array subscript (das bezieht er auf das sprintf)??
    Macht er also nicht so gern... 😞



  • int i[8]={1,2,3,4,5,6,7,8}; (kein Plan, wie ich das verstehen darf)

    Du initialisierst ein integer array mit 8 elementen ( 0 - 7 )
    🙂



  • Haben Sie die Verwendung von Supercodes in Betracht gezogen?



  • Mach's doch so:

    int main() { 
    	char binArr[8]={0,1,0,0,1,0,1,1};	//dein Array, soll die Zahl 01001011 darstellen
    	int iByte=0;											//(da nur 0 oder 1 gespeichert werden soll, ist
    																		//der Typ char sinnvoller, da nur ein Byte groß)
    	for(int i=7;i>=0;i--) {		//aus deinem Array einen int-Wert machen
    		if(binArr[i]) {
    			iByte+=(1<<(7-i));
    		}
    	}
    	char cByteBin[9]={0};
    	itoa(iByte,cByteBin,2);		//aus dem erzeugten Byte einen String mit dem Wert zur Basis 2 machen
    	printf("Meine Zahl binaer dargestellt: %s",cByteBin);		//String darstellen
    	getchar();
    }
    

    😃



  • Sorry, Forum spinnt mal wieder...



  • Sorry, Forum spinnt mal wieder...



  • Sorry, Forum spinnt mal wieder...



  • Ich mach doch nur Spaß... 😉

    Das Beispiel funktioniert zwar, ist aber von hinten durch die Brust. So geht es auch einfacher:

    int main() { 
    	char binArr[8]={0,1,0,0,1,0,1,1};
    
    	printf("Meine Zahl binaer dargestellt: ");
    	for(int i=0;i<8;i++) {
    		printf("%c",binArr[i]+48);
    	}
    	printf("\n");
    	getchar();
    }
    

    Dazu musst du wissen, dass im ASCII-Code das Zeichen '0' an der Stelle 48 steht, '1' dann auf 49 usw. Du musst also nur auf deinen Zahlenwert 48 draufaddieren, um an das entsprechende Zeichen zu kommen.

    P.S.: Da dir offensichtlich noch elementare Grundlagen fehlen, solltest du am besten mal ein gutes Buch/Tutorial durcharbeiten. 🙂



  • Wow, dank dir vielmals, ich werd das in den nächsten stunden noch versuchen, da ich momentan noch andere Aufgaben hab. 🙄

    Aber das is gut erklärt.

    Ich arbeite schon an mehreren guten Tutorials, sonst hätte ich wahrscheinlich nicht mal die anmeldung hier im Forum geschafft. 😃

    Dank dir erstmal bis hier hin..


Anmelden zum Antworten