Problem bei Konvertierung von Int in Char[] und zurück
-
Wenn ich bei meinem Programm int werte in char[] konvertiere, damit ich es ausgeben kann oder eingegeben char werte in int konvertiere, damit ich damit weiterrechnen kann, zeigt er mir immer nur merkwürdige zeichen an, z.B. sowas:
BildKonvertiert hab ichs so:
int x = 54321 char x_op[5]; itoa(x,x_os,10);
Auch wenn ich eine Zahl eingib kann ich damit nicht weiterrechnen.
-
Ich nehme mal an das es dich nicht weiter stört das itoa() nicht zum
Standard gehört.Wenn du dem Zielbuffer richtig dimensionierst sollte es auch richtig
funktionieren.int x = 54321; char x_op[10]; // 5 ist zuwenig !! itoa(x, x_op, 10);
-
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
liegt dran, dass ein 5-zeichen-string genau 6 zeichen im speicher braucht: das letzte ist ein '\0' == 0 != '0'.
-
funktioniert irgendwie trotzdem noch nicht, muss nochmal alles durchschauen.
gibts eigentlich noch ne andere möglichkeit int in char* zu konvertieren?
-
Ja, sprintf() und snprintf().
-
aber das ist doch nur für konsolenanwendungen oder?
-
Nein.
-
Mit sprintf würde sowas folgendermasen aussehen:
char bla[6]="16348"; int blabla; sprintf(bla, "%d" , blabla);
Von char nach int geht ganz normal atoi:
blabla=atoi(bla);
Hier musst du auch nie die Länge des char[] angeben und darum find ich die Lösung auch besser.
-
Max3000 schrieb:
Hier musst du auch nie die Länge des char[] angeben und darum find ich die Lösung auch besser.
wo muss man das machen?
nicht beim itoa, denn die 10 als argument dort war die basis des zahlensystems.
-
c.rackewitz deine Bemerkungen sind erfrischend.
Wo nimmst du bloss die Ruhe her, all diesen Lehrbuch-, Referenz und Tutorialallergischen Typen auf die kleinen Sprünge zu helfen.
-
Int in Char[]? Hm, diese komplizerte Frage wird wohl nie gelöst werden können, solange es Programmierer gibt.