std::cout ersetzen durch cout



  • #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int main()
    {
        cout << "Hallo!" << endl;
        getchar();
        return 0;
    }
    

    Siehe auch: http://tutorial.schornboeck.net/namespace.htm

    mfg.

    edit: Ich war zu langsam...



  • Und von einer cstdlib.h hab ich bisher auch noch nichts gehört, du meinst wohl stdlib.h oder cstdlib



  • User--- schrieb:

    Und von einer cstdlib.h hab ich bisher auch noch nichts gehört, du meinst wohl stdlib.h oder cstdlib

    Nein, sie meint im C++-Forum nur cstdlib und nicht stdlib.h 😉

    MfG SideWinder



  • SideWinder schrieb:

    User--- schrieb:

    Und von einer cstdlib.h hab ich bisher auch noch nichts gehört, du meinst wohl stdlib.h oder cstdlib

    Nein, sie meint im C++-Forum nur cstdlib und nicht stdlib.h 😉

    MfG SideWinder

    Oh stimmt, hatte vergessen das C-Wissen-Modul zu entladen bevor ich ins C++-Forum wechselte 😉



  • danke. kleiner fehler, aber jetzt funzt es.
    next problem:
    ich möchte zahlen runden, habe dazu eine funktion gefunden, die ich auch benutze. allerdings wird nicht gerundet, sondern ich bekomme die gleiche zahl. könnt ihr mir da auch weiterhelfen? (ich will die zahlen nicht einfach abschneiden, sie müssen wirklich gerundet werden. in meinem fall auf 0 stellen nach dem komma, möchte die funktion aber auch woanders einsetzen können.)

    #include <iostream>
    #include <math.h>
    using namespace std;
    
    double Round(double, unsigned int);
    
    int main()
    {
      double Zahl;
      cout << "Prozent:\t\t" << std::endl;
      cin >> Zahl;
    
      Round(Zahl,0);
    
      cout << "\n\nProzent gerundet:\t" << Zahl;
      getchar();
    
      return 0;
    }
    
    double Round(double Zahl, unsigned int Stellen)
    {
        Zahl *= pow(10, Stellen);
        if (Zahl >= 0)
            floor(Zahl + 0.5);
        else
            ceil(Zahl - 0.5);
        Zahl /= pow(10, Stellen);
        return Zahl;
    }
    


  • Eine solche Funktion könnte so aussehen:

    double Runden(double Zahl, char Stellen)
    {
        return static_cast<int>(Zahl * pow(10,Stellen) + 0.5) / pow(10,Stellen);
    }
    

    mfg.



  • Auch bei der Funktion bekomme ich keinen gerundeten Wert, sondern exakt den, den ich eingegeben habe (2.3)

    #include <iostream>
    #include <math.h>
    using namespace std;
    
    double Runden(double, char);
    
    int main()
    {
      double Zahl;
      cout << "Prozent:\t\t" << std::endl;
      cin >> Zahl;
    
      Runden(Zahl,0);
    
      cout << "\n\nProzent gerundet:\t" << Zahl;
      getchar();
    
      return 0;
    }
    
    //Runden-Funktion--------------------------------------------------------------
    double Runden(double Zahl, char Stellen)
    {
        return static_cast<int>(Zahl * pow(10,Stellen) + 0.5) / pow(10,Stellen);
    }
    


  • Du rufst die funktion Runden nur auf. Verwendest das Ergebnis aber nicht.
    so sollte sich was tun

    Zahl = Runden(Zahl,0);
    

    Kurt



  • Meine Funktion ändert die Zahl nicht, sondern gibt den neuen Wert zurück. Wenn du es so haben willst, das die Zahl geändert wird, müsste die Funktion so aussehen:

    void Runden(double &Zahl, char Stellen)
    {
        Zahl = static_cast<int>(Zahl * pow(10,Stellen) + 0.5) / pow(10,Stellen);
    }
    

    mfg.

    edit: ZuK Post war noch nicht da, als ich geschrieben habe. So geht's natürlich auch.



  • Wär ja unlustig wenns für ein Problem nur eine Lösung gäbe.
    Kurt


Anmelden zum Antworten