HIGHSCORE, BITTE JEDER DER AHNUNG HAT KURZ MAL REIN SCHAUEN, BRAUCHE DAS MEGA SCHNELL
-
also, da sollte irgendwie ne schleife noch rein und ich möchte das der mir den array verschlüsselt wenn es geschrieben wird (andere zeichen) damit net jeder sofort das nachher editieren kann.
void highscoreeingabe (int);
void highscore();FILE *pfile ;
void highscoreeingabe (int punkte)
{
struct highpl {int platz ; int punkt; char name[8]; };struct highpl highpl1 = {1,0,"nicht belegt"};
struct highpl highpl2 = {2,0,"nicht belegt"};
struct highpl highpl3 = {3,0,"nicht belegt"};
struct highpl highpl4 = {4,0,"nicht belegt"};
struct highpl highpl5 = {5,0,"nicht belegt"};
struct highpl highpl6 = {6,0,"nicht belegt"};
struct highpl highpl7 = {7,0,"nicht belegt"};
struct highpl highpl8 = {8,0,""};
struct highpl neu = {9} ;neu.punkt=punkte;
pfile = fopen ("C:\\system.zrx","r");fscanf(pfile,"%i",&highpl1.punkt);
fscanf(pfile,"%s",&(highpl1.name));
fscanf(pfile,"%i",&highpl2.punkt);
fscanf(pfile,"%s",&(highpl2.name));
fscanf(pfile,"%i",&highpl3.punkt);
fscanf(pfile,"%s",&(highpl3.name));
fscanf(pfile,"%i",&highpl4.punkt);
fscanf(pfile,"%s",&(highpl4.name));
fscanf(pfile,"%i",&highpl5.punkt);
fscanf(pfile,"%s",&(highpl5.name));
fscanf(pfile,"%i",&highpl6.punkt);
fscanf(pfile,"%s",&(highpl6.name));
fscanf(pfile,"%i",&highpl7.punkt);
fscanf(pfile,"%s",&(highpl7.name));
fscanf(pfile,"%i",&highpl8.punkt);
fscanf(pfile,"%s",&(highpl8.name));fclose (pfile);
if (neu.punkt<=highpl8.punkt)
{
goto ende;
}
if (neu.punkt>highpl8.punkt)
{
printf("NEUER HIGHSCORE!\n\n");
printf("Ihre Punktzahl ist: %i\n",neu.punkt);printf("Ihr Name (max. 3 Zeichen): ");
scanf("%s",&(neu.name) + 4);
printf("\n\n");pfile = fopen ("C:\\system.zrx","r");
fscanf(pfile,"%i",&highpl1.punkt);
fscanf(pfile,"%s",&(highpl1.name));
fscanf(pfile,"%i",&highpl2.punkt);
fscanf(pfile,"%s",&(highpl2.name));
fscanf(pfile,"%i",&highpl3.punkt);
fscanf(pfile,"%s",&(highpl3.name));
fscanf(pfile,"%i",&highpl4.punkt);
fscanf(pfile,"%s",&(highpl4.name));
fscanf(pfile,"%i",&highpl5.punkt);
fscanf(pfile,"%s",&(highpl5.name));
fscanf(pfile,"%i",&highpl6.punkt);
fscanf(pfile,"%s",&(highpl6.name));
fscanf(pfile,"%i",&highpl7.punkt);
fscanf(pfile,"%s",&(highpl7.name));
fscanf(pfile,"%i",&highpl8.punkt);
fscanf(pfile,"%s",&(highpl8.name));fclose (pfile);
if (neu.punkt==highpl8.punkt)
{
goto ende;
}if (neu.punkt==highpl7.punkt)
{
highpl8.punkt=neu.punkt;
strcpy(highpl8.name,neu.name);
goto ende;
}if (neu.punkt==highpl6.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=neu.punkt;
strcpy(highpl7.name,neu.name);
goto ende;
}if (neu.punkt==highpl5.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=neu.punkt;
strcpy(highpl6.name,neu.name);
goto ende;
}if (neu.punkt==highpl4.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=neu.punkt;
strcpy(highpl5.name,neu.name);
goto ende;
}if (neu.punkt==highpl3.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=highpl4.punkt;
strcpy(highpl5.name,highpl4.name);
highpl4.punkt=neu.punkt;
strcpy(highpl4.name,neu.name);
goto ende;
}if (neu.punkt==highpl2.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=highpl4.punkt;
strcpy(highpl5.name,highpl4.name);
highpl4.punkt=highpl3.punkt;
strcpy(highpl4.name,highpl3.name);
highpl3.punkt=neu.punkt;
strcpy(highpl3.name,neu.name);
goto ende;
}if (neu.punkt==highpl1.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=highpl4.punkt;
strcpy(highpl5.name,highpl4.name);
highpl4.punkt=highpl3.punkt;
strcpy(highpl4.name,highpl3.name);
highpl3.punkt=highpl2.punkt;
strcpy(highpl3.name,highpl2.name);
highpl2.punkt=neu.punkt;
strcpy(highpl2.name,neu.name);
goto ende;
}if (neu.punkt>highpl1.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=highpl4.punkt;
strcpy(highpl5.name,highpl4.name);
highpl4.punkt=highpl3.punkt;
strcpy(highpl4.name,highpl3.name);
highpl3.punkt=highpl2.punkt;
strcpy(highpl3.name,highpl2.name);
highpl2.punkt=highpl1.punkt;
strcpy(highpl2.name,highpl1.name);
highpl1.punkt=neu.punkt;
strcpy(highpl1.name,neu.name);
goto ende;
}if (neu.punkt>highpl2.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=highpl4.punkt;
strcpy(highpl5.name,highpl4.name);
highpl4.punkt=highpl3.punkt;
strcpy(highpl4.name,highpl3.name);
highpl3.punkt=highpl2.punkt;
strcpy(highpl3.name,highpl2.name);
highpl2.punkt=neu.punkt;
strcpy(highpl2.name,neu.name);
goto ende;
}if (neu.punkt>highpl3.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=highpl4.punkt;
strcpy(highpl5.name,highpl4.name);
highpl4.punkt=highpl3.punkt;
strcpy(highpl4.name,highpl3.name);
highpl3.punkt=neu.punkt;
strcpy(highpl3.name,neu.name);
goto ende;
}if (neu.punkt>highpl4.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=highpl4.punkt;
strcpy(highpl5.name,highpl4.name);
highpl4.punkt=neu.punkt;
strcpy(highpl4.name,neu.name);
goto ende;
}if (neu.punkt>highpl5.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=highpl5.punkt;
strcpy(highpl6.name,highpl5.name);
highpl5.punkt=neu.punkt;
strcpy(highpl5.name,neu.name);
goto ende;
}if (neu.punkt>highpl6.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=highpl6.punkt;
strcpy(highpl7.name,highpl6.name);
highpl6.punkt=neu.punkt;
strcpy(highpl6.name,neu.name);
goto ende;
}if (neu.punkt>highpl7.punkt)
{
highpl8.punkt=highpl7.punkt;
strcpy(highpl8.name,highpl7.name);
highpl7.punkt=neu.punkt;
strcpy(highpl7.name,neu.name);
goto ende;
}if (neu.punkt>highpl8.punkt)
{
highpl8.punkt=neu.punkt;
strcpy(highpl8.name,neu.name);
goto ende;
}
}ende:
pfile = fopen ("C:\\system.zrx", "w");
fprintf(pfile,"%i %s\n",highpl1.punkt,highpl1.name);
fprintf(pfile,"%i %s\n",highpl2.punkt,highpl2.name);
fprintf(pfile,"%i %s\n",highpl3.punkt,highpl3.name);
fprintf(pfile,"%i %s\n",highpl4.punkt,highpl4.name);
fprintf(pfile,"%i %s\n",highpl5.punkt,highpl5.name);
fprintf(pfile,"%i %s\n",highpl6.punkt,highpl6.name);
fprintf(pfile,"%i %s\n",highpl7.punkt,highpl7.name);
fprintf(pfile,"%i %s\n",highpl8.punkt,highpl8.name);
fclose (pfile);fclose (pfile);
}void highscore()
{
int loop=0;
struct highpl {int rang ; int punkt; char name[25]; };struct highpl highpl1 = {1,0,""};
struct highpl highpl2 = {2,0,""};
struct highpl highpl3 = {3,0,""};
struct highpl highpl4 = {4,0,""};
struct highpl highpl5 = {5,0,""};
struct highpl highpl6 = {6,0,""};
struct highpl highpl7 = {7,0,""};
struct highpl highpl8 = {8,0,""};pfile = fopen ("C:\\system.zrx","r");
fscanf(pfile,"%i",&highpl1.punkt);
fscanf(pfile,"%s",&(highpl1.name));
fscanf(pfile,"%i",&highpl2.punkt);
fscanf(pfile,"%s",&(highpl2.name));
fscanf(pfile,"%i",&highpl3.punkt);
fscanf(pfile,"%s",&(highpl3.name));
fscanf(pfile,"%i",&highpl4.punkt);
fscanf(pfile,"%s",&(highpl4.name));
fscanf(pfile,"%i",&highpl5.punkt);
fscanf(pfile,"%s",&(highpl5.name));
fscanf(pfile,"%i",&highpl6.punkt);
fscanf(pfile,"%s",&(highpl6.name));
fscanf(pfile,"%i",&highpl7.punkt);
fscanf(pfile,"%s",&(highpl7.name));
fscanf(pfile,"%i",&highpl8.punkt);
fscanf(pfile,"%s",&(highpl8.name));printf(" %i. %i Pkt %s\n",highpl1.rang,highpl1.punkt,highpl1.name);
printf(" %i. %i Pkt %s\n",highpl2.rang,highpl2.punkt,highpl2.name);
printf(" %i. %i Pkt %s\n",highpl3.rang,highpl3.punkt,highpl3.name);
printf(" %i. %i Pkt %s\n",highpl4.rang,highpl4.punkt,highpl4.name);
printf(" %i. %i Pkt %s\n",highpl5.rang,highpl5.punkt,highpl5.name);
printf(" %i. %i Pkt %s\n",highpl6.rang,highpl6.punkt,highpl6.name);
printf(" %i. %i Pkt %s\n",highpl7.rang,highpl7.punkt,highpl7.name);
printf("7,5. %i Pkt\n",highpl8.punkt);fclose (pfile);
}
-
Master-of-Scare schrieb:
sollte jedoch dabei auch noch kurz sein...
keine bange, die wird sehr kurz. schau in dein c-buch unter dem stichwort arrays nach. das vereinfacht die lange variablenliste, und du kannst dich dann auf's wesentliche kondensieren.
-
tja, hab das schon ewig nachgeschlagen, bekomme das leider absolut net hin, sonst würde ich das hier kaum schreiben
-
Als allererstes würd ich das ganze mal stark abkürzen indem ich ein Array verwende. (Wurde ja oben schon mal vorgeschlagen).
highpl1, highpl2 usw würde ich erst mal so machen:
struct highpl highplaetze[10];
Dann verkürzt sich schon mal dein Code um mehr als die Hälfte. Die definition deiner Struct wäre vielleicht auch interessant.
MFG
Tom
-
dein code ist soo haarsträubend umständlich, daß die einzige möglichkeit eines korrekturvorschlags das posten eines neuen codes ist:
#include <stdio.h> #include <stdlib.h> #include <string.h> struct highpl { int punkt; char name[4]; /* soll der name nur 3 zeichen lang sein, */ /* dann brauchts auch nicht mehr platz */ }; void highscore_lesen (struct highpl *highpl) { FILE *pfile; int i; pfile=fopen("C:\\system.zrx","r"); for(i=0; i<8; i++) fscanf(pfile,"%i %s",&highpl[i].punkt,highpl[i].name); fclose(pfile); } void highscore_schreiben (struct highpl *highpl) { FILE *pfile; int i; pfile=fopen("C:\\system.zrx","w"); for(i=0; i<8; i++) fprintf(pfile,"%i %s\n",highpl[i].punkt,highpl[i].name); fclose(pfile); } void highscore_einfuegen (struct highpl *highpl, int punkt, char *name) { int pos,i; /* bestimme position, an der der neue highscore eingefügt werden soll */ for(pos=0; pos<8; pos++) if(punkt>=highpl[pos].punkt) break; if(pos==8) return; /* highscore kleiner als letzter platz => keine änderung */ /* schiebe highscores nach unten */ for(i=7; i>pos; i--) { highpl[i].punkt=highpl[i-1].punkt; strcpy(highpl[i].name,highpl[i-1].name); } /* füge neuen highscore ein */ highpl[pos].punkt=punkt; strcpy(highpl[pos].name,name); } void highscore_eingeben (int punkte) { struct highpl highpl[8]; char name[256]; highscore_lesen(highpl); if(punkte>=highpl[7].punkt) { printf("NEUER HIGHSCORE!\n\n"); printf("Ihre Punktzahl ist: %i\n",punkte); printf("Ihr Name (max. 3 Zeichen): "); scanf("%s",name); name[3]='\0'; /* auf 3 zeichen kürzen */ printf("\n\n"); highscore_einfuegen(highpl,punkte,name); highscore_schreiben(highpl); } } void highscore_ausgeben (void) { struct highpl highpl[8]; int i; highscore_lesen(highpl); for(i=0; i<8; i++) printf(" %i. %i Pkt %s\n",i+1,highpl[i].punkt,highpl[i].name); }
im wesentlichen ist das das selbe wie dein code nur mit arrays, schleifen un unterprogrammen.
-
Thx a lot,
ist es eigentlich auch möglich das die zeichen und punkte irgendwie verschlüsselt werden, so das man die in der datei net einfach so umschreiben kann, zb das man den asci hoch zählt? und wenn ja, wie mach ich daS?
-
Da seht ihr, was man davon hat, wenn man Noobs das "goto" beibringt
-
Trolljaeger schrieb:
Da seht ihr, was man davon hat, wenn man Noobs das "goto" beibringt
naja, groß töne spucken kannst ja, aber auch was anderes? zeig lieber mal das du es besser kannst, ich lerne erst seit paar wochen c...
-
1. -Verschlüsseln oder besser verschleiern. Alle Werte for dem Schreiben mit 0xff xoren
2. - Anstelle mit 0xff xor mit einer beliebigen festen Zeichenfolge xoren3.-im struct ein Feld anhängen in dem ein CRC32 über die Daten drin ist, wenn einer pfuscht muß er das erstens wissen das CRC gesichert zweitens wie er gebildet wird.
4. - Nächster Schritt zusätzlich den gesamten Datenbestand mit CRC32 absichern.
5. - High Score und zweier Komplement abspeichern. Wer fälschen will muss die
wissen und beides ändern6. - Den Inhalt der struct als array of byte auffassen und die Daten mit einem festen muster vertauschen
7.- Orginal reihenfolge 123456789
vertauschung 192837465
Das vertausche Schreiben.8. - mit pgp-methodik verschlüsseln und ablegen
9. - eine beliebige perverse kombination aus den dingen da oben.
reicht das für den Anfang
-
Doppelposts sind verdammt unhöflich.
-
sorry @ mod, aber wusste net wo ich das genau reinsetzen muss um schnelle antwort zu erhalten
-
super, thx, noch kurze frage, wie mach ich das
-
Das kannst Du bei google recherchieren und geht deutlich schneller als hier auf die Antwort zu warten.
Ein einfaches a XOR schluessel bekommst Du mit 'a ^ schluessel'. Das reicht eigentlich für den Anfang, so top secret wird deine Highscore kaum sein.
-
hm, also, ich will ja jetzt nix sagen, gerade weil ich auch noch sehr neu auf dem Gebiet C/C++ bin und auch ziemlich neu hier im Forum, aber für mich sieht das ziemlich so aus, dass Du nen komplett fertigen Code haben willst, den Du dann am Ende wahrscheinlich noch nicht einmal verstehst. Du bist noch am Anfang, ist ja auch OK, aber frag' doch dann nicht nach einer kompletten Lösung.
Master-of-Scare schrieb:
... das man entweder übernehmen oder daraus lernen (Anm.: oder teilweise klauen?) kann ...
... Falls ihr was habt könnt ihr auch gerne mailen: ...
... zeig lieber mal das du es besser kannst, ich lerne erst seit paar wochen c...
Wie gesagt, will mich nicht zu weit aus dem Fenster lehnen, aber für mich liest sich das so ziemlich nach einer Forderung (einem Wunsch) nach einer Komplettlösung und nicht nach einer Lösung eines Problems, wo man durch Tips (passiert ja immer wieder, dass man nicht alles weiß (mir auch sehr, sehr häufig)) das Problem selbst in den Griff bekommt.
-
Vileicht mit Huffman irgentwie verschluseln?. Damit du eine lange string mit 1 und 0 bekommst das keiner lessen kan.
-
mantiz schrieb:
hm, also, ich will ja jetzt nix sagen, gerade weil ich auch noch sehr neu auf dem Gebiet C/C++ bin und auch ziemlich neu hier im Forum, aber für mich sieht das ziemlich so aus, dass Du nen komplett fertigen Code haben willst, den Du dann am Ende wahrscheinlich noch nicht einmal verstehst. Du bist noch am Anfang, ist ja auch OK, aber frag' doch dann nicht nach einer kompletten Lösung.
Master-of-Scare schrieb:
... das man entweder übernehmen oder daraus lernen (Anm.: oder teilweise klauen?) kann ...
... Falls ihr was habt könnt ihr auch gerne mailen: ...
... zeig lieber mal das du es besser kannst, ich lerne erst seit paar wochen c...
Wie gesagt, will mich nicht zu weit aus dem Fenster lehnen, aber für mich liest sich das so ziemlich nach einer Forderung (einem Wunsch) nach einer Komplettlösung und nicht nach einer Lösung eines Problems, wo man durch Tips (passiert ja immer wieder, dass man nicht alles weiß (mir auch sehr, sehr häufig)) das Problem selbst in den Griff bekommt.
Nope, so war das absolut net gemeint, hatte nur das verdammte problem das ich egal wie ich das durchgedacht hatte nie ne schleife rein bekommen hab. die lösung von konfusius hab ich erst mal studiert, hab daran jedoch noch einiges dann geändert da ich das mit einigen anderen ideen noch verbunden habe, mit kopieren war das so gemeint, falls ich das dann absolut net hin bekomm...
-
Master User schrieb:
Vileicht mit Huffman irgentwie verschluseln?. Damit du eine lange string mit 1 und 0 bekommst das keiner lessen kan.
jemand der noch nicht mal arrays einsetzen kann, sollte auf dem teppich bleiben, einfaches xor ist angesagt glaub ich. sonst wird die highscore komplizierter als das programm
-
anstatt die highscoredaten gleich mit fprintf() in die datei zu schreiben, kannst du sie erst mit sprintf() in einen char-puffer schreiben. dort verschlüsselst du sie dann und schreibst das ergebnis in die datei.
zum verschlüsseln würde ich auch xor nehmen. mache einfach buf[i]=buf[i]^0xAA für jedes zeichen im puffer. anstelle von 0xAA kannst du auch eine andere zahl von 0 bis 255 nehmen. du mußt aber aufpassen die zahl so zu wählen, daß kein reguläres zeichen dabei null wird. sonst wird das als stringende interpretiert und das wird dir beim anschließenden schreiben mit fputs() probleme machen. am besten nimm zahlen >127.
das entschlüsseln geht übrigens genauso. xor ist nämlich selbstinvers. wenn du eine zahl zwei mal mit der selben zahl xor'st, dann kommt wieder das selbe raus wie am anfang.
am besten schreibst du dir eine verschlüsselungs-funktion, die als argument den zu verschüsselnden string bekommt. die kannst du dann überall da aufrufen, wo du sie brauchst.
@alle
ich gebs ja zu. ich bin zu noob-freundlich. das fertigcode-posten ist vielleicht doch nicht die beste idee. nem alten c-programmierer wie mir fällts halt leichter, sich in code auszudrücken als in natürlicher sprache. ich gelobe hiermit, mich zu bessern.aber jeden noob anzuschnauzen, er solle erst mal informatik studieren bevor er die unverschämtheit hat sich in diesem forum zu melden, ist auch nicht der weisheit letzter schluß.
Master-of-Scare schrieb:
naja, groß töne spucken kannst ja, aber auch was anderes? zeig lieber mal das du es besser kannst
daran, daß er es besser könnte als du, besteht kein zweifel. und daß hier nicht jeder fertigen code posted, liegt daran, daß noobs ja auch was lernen sollen.
-
ich werde den code ja auch net so übernehmen, aber auf die art und weiße habe ich auch schon HTML gelernt, ich brauche Quellcode um das zeug zu lernen, die highscore muss ich eh noch um einiges dann umschreiben da ich ganz ehrlich nicht die arbeit von einem anderen möchte... nur ich muss sehen wie das funktioniert um es dann selber zu machen... THX A LOT
PS mir ist auch klar das er es besser kann, aber dafür das ich c erst seit etwa 8 oder 9 wochen etwas genauer behandel ist auch klar das ich net das vernetzte denken bisher habe, jedoch will ich das schnell lernen. Und ich bleibe auch net bei c, will noch java, java script, php, flash und sql sowie cgi im verlauf dieses jahres lernen, was nicht so viel ist...
-
@Konfusius
Ich glaube es gibt eine günstiger Lösung. Mach eine union mit 2 elementen, das eine ist die Struct das andere eine array of byte mit der gleichen Länge wie die struct.
Die Daten in die Struct kopieren und als Array of Byte abholen. ich spreche hier von einem Array of Byte und nicht von einem String alle alle Zeichen auch die \0 an jeder Stelle möglich sind. Die Länge ist fest und bekannt.
Auf dies Array of Byte kann ich jedes beliebige schleierverfahren (siehe oben) anwenden und es dann anschließend mit write binaer in eine File schreiben.Lesen geht dann genau andersrum.
read aus dem file
entschleiern
in union kopieren
als struct abholenDas array of byte wird genauso angelegt wie ein string am besten mit
unsigned char Testarry[24];
Alles weiter kann man hier erfragen oder in jedem C-Buch nachlesen. :p