convert Variable



  • Ok ich bin C++ Anfänger und nutze Dev C++.
    ich möcht einen Integer in einen String packen und ihn vorher umwandeln.
    für C wäre das glaube ich itoa(...) oda so, aber das ist ja C... .
    gut ich hab nachgesehen und gefunden das genutzt:

    string bridge;
    int integer;
    bridge = integer.ToString
    

    -> da sagt er das "ToString is undeclared first use this function"
    DAS IST ABER KEINE VARIABLE .... hmpf

    dann hab ich es so versucht:

    stringstream brücke; // kann mir mal einer erklären wann und wie man das nutzt ?
    int test;
    stringstream = test.ToString
    

    compiler: stray /252 in programm

    ich hab noch irgendeine variante mit convert versucht, weiß das aber nicht
    mehr so genau was... das sagt er auch ich soll compile erst
    definieren... so ein mist.

    bitte lacht euch nicht schlapp wenn ich irgendwas total falsch gemacht hab...
    😃 😞
    ich nutze folgende librarys:

    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <windows.h>
    #include <fstream>
    #include <conio.h>
    #include <cstdio>
    #include <stdio.h>
    #include <sstream>
    #include <stdlib.h>



  • #include <iostream>
    #include <sstream>
    
    int main ()
    {
      std::stringstream s;
      int i = 2;
    
      s << i;
    
      std::cout << s.str();
    }
    

    Das was du teilweise zeigst sieht nach einer anderen Sprache aus. 😉



  • Du solltest unbedingt ein gutes Buch anschauen, da weden solche Dinge erklärt. Und von Dev-C++ rate ich ab, da es veraltet ist und nicht mehr weiterentwickelt wird. Nimm stattdessen Microsoft Visual C++ oder Code::Blocks.

    In C++ ist int ein eingebauter Typ und keine Klasse. Folglich gibt es keine Methoden wie ToString . So viele Includes brauchst du übrigens nicht, <iostream> und <sstream> sollten reichen. Mit std::stringstream kannst du folgendermassen umwandeln:

    int Integer = 46;
    std::stringstream Stream;
    Stream << Integer; // einlesen
    
    std::string String = Stream.str(); // als String
    

    Mehr Informationen findest du auf www.cplusplus.com und noch mehr in einem guten Buch.



  • drakon und Nexus sind brüder!



  • zu den includes...
    naja wenn man davon absieht das das ganze programm 1030 zeilen lang ist und es sehr viele verschiedene funktionen beinhaltet...
    Ich bin beeindruckt das nach 30 sekunden gleich eine antwort kommt 🙂 👍

    PERFEKT ES GEHT !!!
    es gibt nur ein problem 😃
    ich möchte das jetzt 26 mal (anzahl buchstaben im alphabet) machen und er reiht mir die zahlen aneinander.
    bitte um hilfe.



  • brüder schrieb:

    drakon und Nexus sind brüder!

    Fast. Zumindest sind wir beide Schweizer *drakon auf die Schulter klopf* 😃
    (Ist aber echt interessant, wie ähnlich unsere Beiträge waren... ;))

    Tim06TR schrieb:

    ich möchte das jetzt 26 mal (anzahl buchstaben im alphabet) machen und er reiht mir die zahlen aneinander.
    bitte um hilfe.

    Sagen dir Schleifen etwas? Falls nicht, ist es allerhöchste Zeit für ein Buch. 🙂



  • natürlich darum geht es doch nicht...

    ich zeig mal was passiert (so viel ahnung hab ich dann schon)

    bridge = int(test);
    stringstream bruecke;
    string filerName = partition + ":\\schlüssel.txt";
    
                filer.open(filerName.c_str()); // oeffnen im Text-Modus
                if(filer)
                {
                            int randomsaver2;
                            saver = 1;
    
                            bruecke << randomsaver[saver];
                            string texter = bruecke.str() + "\n";
                            for (;saver<=26;)
                            {
                            saver = saver + 1;
                            bruecke << randomsaver[saver];
                            texter += bruecke.str() + "\n";
                            }
                            filer << texter; // fertigen Text speichern
                            filer.close();
                            cout<<"Schluessel erfolgreich geaendert";
                }
                else
                {
                            cout << "Datei Fehler!";
                }
    
    }
    

    nur mal dazu
    aber in der txt steht jetzt::
    8
    812
    81223....
    und so weiter
    ich will ide aber einzeln ghaben !
    EDIT:
    und jetzt kommt mir nicht mit:
    das kann man auch so machen: for(;saver<=26;saver++)



  • Tim06TR schrieb:

    natürlich darum geht es doch nicht...

    Tut mir leid, aber deine Fragestellung hat so geklungen, als ob du Schleifen noch nicht kennen würdest. Dazu kommt, dass du nicht einmal einen eigenen Ansatz präsentiert hast.

    Natürlich werden immer mehr Zeichen ausgegeben, du hängst sie schliesslich an den Stream. Um den Stream zu leeren, kannst du die Memberfunktion str() mit einem leeren String "" als Argument aufrufen.

    Tim06TR schrieb:

    EDIT:
    und jetzt kommt mir nicht mit:
    das kann man auch so machen: for(;saver<=26;saver++)

    Was hast du gegen Ratschläge? Aber okay, dann sag ich auch zu deiner unnötigen Codeduplizierung nichts. 😉



  • kein problem ist schon so spät und eigentlich sollte ich grad auf einer lan sein...

    Nexus schrieb:

    Natürlich werden immer mehr Zeichen ausgegeben, du hängst sie schliesslich an den Stream. Um den Stream zu leeren, kannst du die Memberfunktion str() mit einem leeren String "" als Argument aufrufen.

    OK vielen dank es geht wunderbar 😃 JUHU
    jetzt kann ich mein schifrirer Programm endlich fertig stellen FREU.
    ich hab es so gemacht:

    stringstream bruecke;
    string filerName = partition + ":\\schlüssel.txt";
    
                filer.open(filerName.c_str()); // oeffnen im Text-Modus
                if(filer)
                {
                            int randomsaver2;
                            saver = 1;
    
                            bruecke << randomsaver[saver];
                            string texter = bruecke.str() + "\n";
              		        bruecke.str("");
    		                bruecke.clear();
    
                            for (;saver<=26;)
                            {
                            saver = saver + 1;
                            bruecke << randomsaver[saver];
    
                            texter += bruecke.str() + "\n";
                            bruecke.str("");
    		                bruecke.clear();
                            }
                            filer << texter; // fertigen Text speichern
                            filer.close();
                            cout<<"Schluessel erfolgreich geaendert";
                }
                else
                {
                            cout << "Datei Fehler!";
                }
    

Anmelden zum Antworten