fwrite type umwandlung



  • Hallo,

    Ich will die untenstehende fprintf mit fread funktion erzeugen.

    fprintf(fo1,"%c",(char)((int)(ival[i][j])));
    

    So klappt es eigentlich:

    charival[i][j]= (char)((int)(ival[i][j]))
    fwrite ( &charival[i][j],  1, 1, fo1);
    

    ich habe aber kein speicherplatz um ein char array zu erzeugen.
    Wie macht man diese Typumwandlung ohne ein zusätzlichen array zu erzeugen.

    PS: ival ist vom Type int-array, charival ist von Type char-array.

    Vielen Dank



  • gast6 schrieb:

    charival[i][j]= (char)((int)(ival[i][j]))
    fwrite ( &charival[i][j],  1, 1, fo1);
    
    char c;
    fwrite( (c=ival[i][j],&c), 1, 1, fo1);
    


  • Danke, es ist einfach klasse von dir.

    Sei nicht böse, ich will hier kurz noch eine einfache Frage stellen.

    Die muss ich auch umwandeln.

    fprintf(fo1,"P5\n");
    fprintf(fo1,"%d %d\n", 256, 256);
    fprintf(fo1,"255\n");
    

    So ist meine idee: 🙂

    char buffer[] = { 'P', '5' ,' ', '2', '5', '6',' ' , '2','5','6',' ', '2','5','6',' '};
    fwrite (buffer , 1 , sizeof(buffer) , fo1 );
    

    Ich kann aber keine neue Zeile erzeugen. Wie geht das?



  • So hat es geklappt:

    char buffer[] = { 'P', '5' ,'\n', '2', '5', '6',' ' , '2','5','6','\n', '2','5','6','\n'};
    sysace_fwrite(buffer , 1 , sizeof(buffer) , fo1 );
    


  • Warum so kompliziert?

    char buffer[] = "P5\n256 256\n,256\n";
    fwrite(buffer , 1 , sizeof(buffer)-1 , fo1 );
    

Anmelden zum Antworten