Warum nicht der ASCII Wert?
-
Komisch schrieb:
Wie komme ich dann an die 116? Gibt es da einen einfachen Trick?
Der cast ist das einfachste: http://ideone.com/gDFwFG
-
DirkB schrieb:
116 ist 0x74
498216206336 ist 0x7400000000
Bsp: int ist 32-Bit Little-Endian. Übergeben wird zweimal c (in Hex)
74000000 00000000 74000000 00000000printf
holt sich einint
für das %c.Aber ob ich ihm einen int oder einen char gebe, dass erkennt printf doch ohne Probleme?
-
Achso ok vielen Dank.
Eine Sache hätte ich allerdings noch:
Ich schreibe in eine Datei folgendes:
fprintf(encfile, "%llu\n", c_new);
Dann steht dort im Anschluss z.B. (der Teil funktioniert):
58
67
36
9Nun möchte ich den Inhalt lesen und weiterverwenden:
fscanf(decfile, "%llu\n", c); printf("%llu", c);
Als Ausgabe bekomme ich wieder riesige Zahlen - möchte aber eigentlich genau die Werte aus der Datei. Wie mache ich dies richtig?
-
fscanf
erwartet Adressen auf die Variablen (und nicht deren Inhalt)fscanf(decfile, "%llu", &c); // Das \n ist nicht nötig, da bei %u die Whitespace überlesen werden
-
die scan-Fuktionen verändern den übergebenen Parameter, d.h. du mußt dort einen Zeiger (Adresse der Variablen) übergeben:
fscanf(decfile, "%llu\n", &c); printf("%llu", c);
-
Schalte doch mal die Warnungen vom Compiler an bzw. beachte sie.
Beim gcc wäre das -Wall oder zumindest -Wformat
-
logisch - autsch - ähm alles klar danke - hab ich einfach übersehen
allerdings besteht das Problem weiterhin also er gibt weiterhin riesige Zahlenwerte die den gesamten 64Bit Bereich füllen aus. z.B.: 11536662113036736
-
Nochmal zusammenfassend wo ich gerade hänge:
Die Datei sieht wie folgt aus:
15
1
15
71nun möchte ich aus dieser Datei die Zahl von jeder Zeile lesen:
(gekürzt zusammengeschrieben für das Lesen der Zahl aus der ersten Zeile)
File *decfile = fopen(path, "w+"); long long unsigned c; fscanf(decfile, "%llu\n", &c);//fscanf(decfile, "%llu", &c); <-- geht auch nicht
anschließend steht in c der Wert:
11536662113036640Wie bekomme ich den Wert 15 in c? (Das Problem sieht für die anderen gelesenen Zeilen genauso aus)
-
Mit gekürztem Code kann hier niemand was anfangen.
So wie es jetzt da steht ist die Datei leer, wenn Du zufscanf()
kommst. ("w+").Wertest Du den Rückgabewert von
fsanf()
aus?
-
... k danke, das wars ich überschreibe die Datei... traurig trotzdem danke - ich glaub ich geh schlafen