Problem mit Codieren [C]

Auch wenn das originale Zeichen stehengelassen wird, ist das ein Problem, denn woher willst Du beim Entschlüsseln wissen, welches Byte verschlüsselt ist und welches nicht?
 
moin


Ja ich überleg gerade.
Meine erste Idee: Man müsste gegenrechnen ob es beim Codieren zu einem Wert über 255 gekommen wäre, aber bei genauerem nachdenken kann man das nciht machen, da es zu sehr vielen Fehlern führen wird.

Also, Cpt_Sulo, geh mal zu deinem Prof und erzähl ihm das das mit Addition nciht geht und guck was er sagt. Meint er dann immernoch das das geht kannst ja nochmal bescheid sagen, wenn nciht nimm XOR.

Oder benutzt einen größeren Variablen Typ als char oder unsigned char, was dann halt wie jokey2 schon gesagt hat, zu einer großen codierten Datei führen wird.


mfg
umbrasaxum
 
Zuletzt bearbeitet:
Zum Verständnis: das letzte Zeichen der ASCII-Tabelle hat den Wert 255.
Ich lese Die Zeichen aus der Datei mit "char x=(fgetc(loadedq));" Nun speicher ich das in "nt dezd = (int)x;" Ich sag mal ds wäre "z", also steht nun in x=122 mein Code kommt dann "dezc=(int)code[ i ];" Da nehmen wir mal das "ö", somit wäre dezc=153.
Die Summe dann 275>255. "char chiff = (char)(dezc+dezd);" ?Ist das so gemeint....also in der Aufgabe? oder soll ich die 275 speichern?
 
Laut der Aufgabenstellung ist das gemeint, richtig: char chiff = (char)(dezc+dezd);

Du müsstest aber die 275 speichern, damit du alles wieder einwandfrei herstellen kannst.
 
moin


Wenn du eine 275 speichern willst dann kannst du das nicht in einem char machen, da char max 127 und unsigned char max 255!
jokey2 hat vorgeschlagen das in nem short int zu machen.


mfg
umbrasaxum
 
Gut....

Also als short int.

"short int chiff=(dezc+dezd);"

Wenn ich die jetzt speicher per "fputc(chiff, loadedz);"
wenn ich die jetzt wieder auslese, "chiff=fgetc(loadedz);" Steht dann wieder die 275 in chiff?
 
moin


Nein, du musst dann alles als short int speichern und auch alles als short int auslesen.


mfg
umbrasaxum
 
Sag bitte wie......ich habnur so ne dämliche übersicht, wo nur die die ganzen char-Funktionen aufgeführt sind. Hat einer da vielleicht nen amtliches Onlineregister oder so auf lager?
 
moin


Am besten nimmst du fread und fwrite dazu

msdn hat gesagt.:
size_t fwrite(
const void *buffer,
size_t size,
size_t count,
FILE *stream
);
Parameters
buffer
Pointer to data to be written.
size
Item size in bytes.
count
Maximum number of items to be written.
stream
Pointer to FILE structure.


mfg
umbrasaxum
 
Zurück