Zahl Mit N komma stellen darstellen Nur Wie ?????



  • probiers mal so.

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    #include <iostream>// für cout
    #include <iomanip>//( Setprecision )
    #include <math>// Für PI
    #include <conio>// Für Getch ( Stopt das programm bis man ne taste drückt )
    using namespace std;
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int x = 0;
    int main(int argc, char* argv[])
    {
    cin >> x;
    cout << fixed << setprecision(x);
    cout << M_PI;
    getch();
    
            return 0;
    }
    //---------------------------------------------------------------------------
    

    sieht aus als wär ich zu langsam gewesen eh ^^? naja vieleicht hilfts ja trotzdem. es is jedenfalls nen gutes beispiel und funzt ^^

    habsn bissel verschönert, PI is endlos also ideal geeignet als beispiel.



  • Schurke schrieb:

    sieht aus als wär ich zu langsam gewesen eh ^^? naja vieleicht hilfts ja trotzdem. es is jedenfalls nen gutes beispiel und funzt ^^

    joa, aber was ich in deinem code nicht verstehe ist folgendes:

    #include <vcl.h>
    #pragma hdrstop
    #include <conio>
    #pragma argsused
    

    wozu hast du dieses ganze Zeugs eingebaut? Eine Lösung hilft wenig, wenn man sie nicht erklärt bekommt, und diese ganzen Sachen braucht er doch hier überhaupt nicht. Conio ist sogar eine Bibliothek, die nicht Standard ist, und erst dann funktioniert, wenn man linker und compiler flags setzt, und zusätzlich nichtmal für alle Betriebssysteme zur Verfügung steht, also es wäre schon vorteilhaft, wenn man sich auf das Wesentliche beschränkt.

    Edit: ok schon besser, nur wo was zur hölle ist "#pragma"?



  • das ist halt ürgentwie so standartmäßig beim borland c++ builder eingebaut wenn man ne konsolenanwendung macht ^^". weiß ich leider auch net mehr wozu es ist



  • irgendwie hatte ich wohl unrecht.... ich bekomme es wirklich net hin... das mit den stringstreams war auch fürn arsch nach genauerer betrachtung konnte man eine über 100 stellige periode erkennen(das ist ja nicht wirklich möglich im irrationalen...)

    also ihr hattet recht...

    eine idee habsch aber trozdem noch ist es möglich einen array zu zerlegen ohne das dafür ein bestimmtes zeichen verwendet wird ?

    also z.b:

    char test[] = "1234";
    

    in z.B:

    char 1[] = "1";
    char 2[] = "2";
    char 3[] = "3";
    char 4[] = "4";
    

    warscheinlich ist auch diese idee zum scheitern verurteilt... aber sowohl mein deutsch wie auch mein englisch sind fürn arsch, deswegen verstehe ich auch die mir vorgeschlagene lib net....

    währe echt dankbar für jede hilfe.... u. sorry... gestern n scheiss tach gehabt... 🤡



  • Hallo

    scheint als hättest du endlich verstanden was wir sagen, nun können wir dir auch sinnvoll helfen 😉

    Offenbar willst du eine Zahl als Zeichenkette in die einzelnen Ziffern zerlegen. Zuerstmal würde ich std::string empfehlen, dann kannst du einfach den []-Op benutzen, um die Ziffern auszulesen

    #include <string>
    #include <iostream>
    ...
    std::string zahl = "1234";
    int ziffer;
    for (std::size_t index = 0; index < zahl.size(); index++)
    {
      ziffer = zahl[index] - '0';
      std::cout << ziffer << std::endl;
    }
    

    bis bald
    akari



  • Herzlichen Dank werds gleich mal ausprobiren !!!

    und wirklich nochmal sorry wegen gestern !!!

    Mfg Baltur



  • JIPPI JUHU u. TRALLALA GENAU WAS ICH SUCHTE

    Mfg Baltur 😉 😉 😉



  • noch ne ganz bescheidene frage hab *g*

    wie ist es möglich diesen string an eine andere funktion zu übergeben ?

    Bei nem array oder ner variable macht man das ja ganz normal so....

    int testfunktion(int test1,int &test2)
    {
        test2=test1*2;
        return test2;
    }
    int main()
    {
        int test1=5;
        int test2;
        testfunktion(test1,test2);
        printf("%i",test2);
    }
    
    mache ich das bei einem string genau so wie bei nem array ?
    

    Mfg Baltur



  • Hallo

    auch nicht anders als gewohnte Variablen. Aber aus Geschwindigkeitsgründen am besten als Referenz

    void func(const std::string& test1, std::string& test2)
    {
      test2 = test1;
    }
    ...
    std::string a = "A";
    std::string b = "B";
    func(a, b);
    

    bis bald
    akari



  • also hab noch mal ne frage zu dem code:

    #include <string>
    #include <iostream>
    ...
    std::string zahl = "1234";
    int ziffer;
    for (std::size_t index = 0; index < zahl.size(); index++)
    {
      ziffer = zahl[index] - '0';
      std::cout << ziffer << std::endl;
    }
    

    und zwar kenne ich m. dem namespace std net so gut aus...
    meine frage : Wie bekomme ich es hin das die schleife von der lezten stelle des string sur ersten durchläuft und nicht so wie hier :

    for (std::size_t index = 0; index < zahl.size(); index++)
    {
      ziffer = zahl[index] - '0';
      std::cout << ziffer << std::endl;
    }
    

    von der ersten zur lezten ????

    ich weiss das das warscheinlich auch wieder so ne bescheuerte frage ist wie all die anderen *g* aber ich komme echt nicht drauf....

    erst mal vielen dank für die ganze hilfe.... komme dem was ich vorhab scho immer näher !!!!

    ach ja hehe *g* noch ne frage *g* : Wie kann ich an einen string vorne (z.b: bei string str= "1234" noch ein paar nullen drannhängen ? also z.b str= "00001234" )??geht das irgendwie m. strcat() ????

    Super Herzlichen Dank!!!

    Mfg Baltur !



  • Hallo

    Wie bekomme ich es hin das die schleife von der lezten stelle des string sur ersten durchläuft und nicht so wie hier :

    for (std::size_t index = zahl.size(); index > 0; index--)
    {
      ziffer = zahl[index-1] - '0';
      std::cout << ziffer << std::endl;
    }
    

    Wie kann ich an einen string vorne (z.b: bei string str= "1234" noch ein paar nullen drannhängen ? also z.b str= "00001234" )??geht das irgendwie m. strcat() ????

    std::string test = "1234";
    test = "0000" + test;
    

    bis bald
    akari



  • Herzlichen Dank für die hilfe !!!!!

    habs jezt endlich geschafft mir was zum addieren von strings mit n zeichen zusammengebastelt.... also manche fragen hätte ich besser nicht stellen sollen (man sieht das brett vorm kopf)*g*

    Nun ja jezt habe ich zu diesem thema die hoffentlich lezte frage:

    Kann man eine Funktion der Form:

    _str_addition_(str1,str2);
    

    indie form:

    str1_str_addition_str2;
    

    bringen ?

    wenn ja, wie könnte ich das machen ?

    MFG BALTUR...



  • Hallo

    😕 Was hat die zweite Form mit einer Funktion zu tun? Warum sollen die Parameternamen im Funktionsnamen integriert sein, und was ist mit den Parametern selbst?

    bis bald
    akari



  • ich glaub er meine es folgend:

    str1 str_addition str2;
    

    also str_addition als operator.

    @Baltur:
    falls meine vermutung richtig war, dann guck dir operator ueberladung an

    Meep Meep



  • hehe genau das meinte ich....

    sorry das ich mich scho wieder dumm ausgedrückt hab... guck mir das m. der operatorüberladung mal an.... vlt find ich ja was *g*

    Mfg Baltur



  • hmm.... oki... wieder mal zu blöde....
    also es gibt ja echt viele beispiele aber ich peil sie net....
    könnte mir hier einer vlt eins m. erklährung geben ? währe voll nett...

    Mfg Baltur !!!



  • re

    http://www.cpp-tutor.de/cpp/le12/le12_04.htm

    hier wird es recht gut erklaert.

    Meep Meep



  • hehe glaubst dus ? (warscheinlich ja)....
    ich bin echt zu blöde....trozdem scho mal danke für die viele hilfe...

    wie geht das denn z.B wenn ich den oberato + mit folgender funktion überladen will?

    int test(int a , int b)
    {
        return a*b;
    }
    

    und wie geht das z.B wenn ich den operator PLUS nennen möchte ?

    meinst du könntest mir n beispiel bauen ? was genau auf meine situation passt ? ich denke dann sollte ich es hflt auch verstehen *g*

    Mfg Baltu ...



  • re

    int test(int a , int b)
    {
        return a*b;
    } 
    
    // wird folgend angewandt
    int result = test(12, 24);
    

    einen operator PLUS kannst du so nicht definieren das du folgendes machen koenntest:

    int a, b;
    int result = a PLUS b;  // geht net !
    

    du kannst dir fuer deine klasse einen operator+ ueberladen

    class myClass
    {
       int value;
    
       public:
          myClass operator+(const myClass &mc)
          {
             return myClass(value + mc.value);
          }
    };
    
    // kannst jetzt folgendes machen
    myClass a,b,c;
    c = a + b;
    

    Meep Meep



  • hehe gez bin ich voll verwirrt.....

    macht nix... ich werd mal n paar tage darüber nachdenken u. wenn ichs gepeilt hab meld ich mich wieder....


Anmelden zum Antworten