0 vor int - Fehler
-
Guten Tag,
Ich habe wohl eine dämliche Frage, die wohl sehr einfach lösbar ist - na ja, so ist es wohl mit den Anfängern

warum kriege ich bei sowas wie:
int i=08;
eine Fehlermeldung:
numeric constant contains digits beyond the radix.
und wie kann man es umgehen, ohne die 0 zu löschen?
Vielen Dank im Voraus
babadura
-
weil Zahlenliterale, die mit 0 eingeleitet werden, als octal interpretiert werden.und im octalsystem gibts die 8 nunmal nicht
-
Danke für die Antwort, werde ich mir merken, und trotzdem:
Was kann ich denn tun, damit solche Zahlen als Dezimalzahlen interpretiert werden, ohne die Löschung der 0?
Danke
Babadura
-
babadura schrieb:
Was kann ich denn tun, damit solche Zahlen als Dezimalzahlen interpretiert werden, ohne die Löschung der 0?
Nichts. Das ist eben so, ist eine feste Regel in der Sprache. Wozu solltest du das auch brauchen?
-
eigenen Compiler schreiben?
-
fsgdfh schrieb:
eigenen Compiler schreiben?

-
Also, mir ist eine Liste mit Zahlen gegeben, die mit Mergesort sortiert werden müssen. Einige fangen eben mit 0 an.
Allerdings man muss aber auch dazu sagen, dass diese Zahlen in einer textdatei gespeichert sind und die 0 ist, wie ich es verstehe, dazu da, dass jede Zahl die gleiche Länge besitzt.
Ich bin zwar gerade nur am verstehen, wie genau dynamische Arrays erzeugt werden, und vielleicht ist es dort gar kein Problem, dass jede Zeile als ein integer-wert ausgelesen wird, vielleicht wird ja dann die 0 nicht beachtet, ich weiss es nicht, aber ich vermute mal, dass auch an dieser Stelle die 0 ein Problem wird.
Vielleicht habe ich ja Unrecht, daher brauche ich eure Aufklärung

-
wenn ich anfange, meinen eigenen compiler zu schreiben, wird dieser Forum von meinen dummen Fragen überflutet sein

-
Wenn die Zahlen als strings vorliegen kannst du ja einfach Stringstreams benutzen
std::string zahl = "0000000000123"; int echteZahl; std::stringstream Str << zahl; Str >> echte Zahl;
-
in nem text-file sollte das kein problem sein - stringstream ist es egal, ob da 007 oder 7 steht...
bb
-
Ok, danke, versuche ich gleich

-
superr!! Vielen Dank, alles funktioniert genau so, wie ich es will
