int wert in char[] schreiben



  • hi,

    ich stehe momentan aufm schlauch und weiss bei folgendem einfachem problem nicht weiter.

    ich möchte, dass der int wert=432 in mychar[0] als wert drin steht. so wie der code unten sthet, funktionierts nicht.

    char* mychar = new char[1000];
    int i=423;
    mychar[0]=i;

    bitte um hilfe.

    edit: sorry, habs in der falschen kategorie geöffnet, bitte verschieben



  • ja, klar, weil in einem char auch nur 1 byte Platz hat, dein int aber vermutlich 4 bytes benötigt.

    Edit:
    Ausserdem: new char[0]; erzeugt ein array, welches KEINE elemente hat!!



  • theta schrieb:

    ja, klar, weil in einem char auch nur 1 byte Platz hat, dein int aber vermutlich 4 bytes benötigt.

    Edit:
    Ausserdem: new char[0]; erzeugt ein array, welches KEINE elemente hat!!

    hast du ein lösungsvorschlag?



  • new char[100] !?



  • Jochen Kalmbach schrieb:

    new char[100] !?

    eine vergrößerung des arrays bringt leider keine änderung.



  • WAS funktioniert denn nicht?



  • Jochen Kalmbach schrieb:

    WAS funktioniert denn nicht?

    char* mychar = new char[1000];
    int i=423;
    mychar[0]=i;

    als ergebnis kommt beim debuggen folgender Wert
    mychar[0]= -89 '§'

    ich möchte, dass der wert 432 drinsteht.

    danke.



  • Schau Dir mal _itoa an, damit lässt sich das lösen. Ein Beispiel findest Du ebenfalls auf dieser Seite.



  • sri schrieb:

    Schau Dir mal _itoa an, damit lässt sich das lösen. Ein Beispiel findest Du ebenfalls auf dieser Seite.

    hi,

    danke für den tipp. ich bekomm folgende fehler meldung.

    char *geheim = new char[65];
    int r=432;
    geheim[0]=_itoa( r, geheim, 10 );

    error C2440: '=': 'char *' kann nicht in 'char' konvertiert werden



  • char *geheim = new char[65];
    int r=432;
    geheim[0]=_itoa( r, geheim, 10 );

    error C2440: '=': 'char *' kann nicht in 'char' konvertiert werden

    Nimm doch mal statt "geheim[0] = _itoa( r, geheim, 10 );" - "geheim = _itoa( r, geheim, 10);

    Was mich gerade ein wenig stört, versuchst du dort ernsthaft mehrere Zeichen auf ein Zeichen zu schreiben?



  • inflames2k schrieb:

    char *geheim = new char[65];
    int r=432;
    geheim[0]=_itoa( r, geheim, 10 );

    error C2440: '=': 'char *' kann nicht in 'char' konvertiert werden

    Nimm doch mal statt "geheim[0] = _itoa( r, geheim, 10 );" - "geheim = _itoa( r, geheim, 10);

    Was mich gerade ein wenig stört, versuchst du dort ernsthaft mehrere Zeichen auf ein Zeichen zu schreiben?

    danke für deine antwort. was ich versuche ist folgendes.

    ich möchte eine reihe von int-werten in ein array schreiben, aber jeweils den wert selbst und nicht den ascii-wert.
    also zb.

    int i= 155;
    mychar[0]=i;
    dann sollte in mychar[0] also

    cout << mychar[0];
    -> Ausgabe : 155

    stehen und nicht sein ascii wert.



  • Ich weiss ja nicht genau was Du möchtest...
    (Möchtest Du eine Zahl in einen String umwandeln? Möchtest Du eine Zahl in ein char Array (binär) schreiben?...)

    Ev. hilft das:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html



  • stehen und nicht sein ascii wert

    Tuts doch gar nicht, wenn mans richtig macht:

    int r = 155;
    cout << r;
    

    Simon



  • es geht einfach nicht das du in char [0] was genau einem zeichen entspricht einen int reinschreibst! Vorallem nicht mit 3 Stellen.

    1 Stelle würd gehen dann würde aber auch nicht die Zahl 4 sondern das Zeichen 4 drin stehen!


Anmelden zum Antworten