Helft mir bitte



  • so:

    std::string eingabe;
    
    do
    {
       std::cout << "Nochmal (Ja) ?: ";  // Frage stellen
       std::cin >> eingabe;   // Eingabe abwarten
    }
    while(eingabe != "Ja");  // wenn nicht mit Ja beantwrotet, dann zum Schleifenbeginn
    


  • So

    #include <iostream>
    using namespace std;
    int main()
    {
    char  x=0, y=0,z=0;
    std::string eingabe;
    
    cout << "Gebe den 1. Punkt ein: ";
    cin >> x;
    cout << "Gebe den 2. Punkt ein: ";
    cin >> y;
    cout << "Gebe den 3. Punkt ein: ";
    cin >> z;
    
    do
    {
       std::cout << "Nochmal (Ja) ?: ";  // Frage stellen
       std::cin >> eingabe;   // Eingabe abwarten
    }
    while(eingabe != "Ja");  // wenn nicht mit Ja beantwrotet, dann zum Schleifenbeginn
    

    Das geht leider nicht 😞
    Schade



  • Geht nicht ist keine Fehlerbeschreibung



  • Das geht leider nicht 😞
    Schade

    Oh mann, mach es doch uns und dir nicht unnötig schwer. WAS geht nicht?



  • ------ Erstellen gestartet: Projekt: HU1, Konfiguration: Debug Win32 ------
    Kompilieren...
    HU1.cpp
    .\HU1.cpp(18) : error C2679: Binärer Operator '>>': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(1137): kann 'std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char *)' sein
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(1139): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,signed char &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(1141): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char *)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(1143): oder "std::basic_istream<_Elem,_Traits> &std::operator >><std::char_traits<char>>(std::basic_istream<_Elem,_Traits> &,unsigned char &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(155): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_istream<_Elem,_Traits> &(__cdecl *)(std::basic_istream<_Elem,_Traits> &))"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(161): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(168): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::ios_base &(__cdecl *)(std::ios_base &))"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(175): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::_Bool &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(194): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(short &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(228): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned short &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(247): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(int &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(273): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned int &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(291): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(309): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__w64 unsigned long &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(329): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(__int64 &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(348): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(unsigned __int64 &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(367): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(float &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(386): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(double &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(404): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(long double &)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(422): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(void *&)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    D:\Programme\Microsoft Visual Studio 8\VC\include\istream(441): oder "std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator >>(std::basic_streambuf<_Elem,_Traits> *)"
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    bei Anpassung der Argumentliste '(std::istream, std::string)'
    .\HU1.cpp(20) : error C2678: Binärer Operator '!=': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'std::string' akzeptiert (oder keine geeignete Konvertierung möglich)
    kann 'eingebauter C++ Operator!=(const char [3], const char [3])' sein
    bei Anpassung der Argumentliste '(std::string, const char [3])'
    .\HU1.cpp(21) : fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in ".\HU1.cpp(4)" gefunden wurde
    Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\David\Desktop\Aufgabe\HU1\HU1\Debug\BuildLog.htm" gespeichert.
    HU1 - 3 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========



  • #include <string>

    fehlt



  • Und wie kann ich über eine schleife die Länge eines n.ten Polygons errechnen

    also 3 punkte dann kommt die frage noch ein punkt dann ja usw.

    dann soll er aus 4 punkten die Länge berechnen



  • std::vecotr nutzen und darüber iterieren,
    ein Array verwenden (nehme an das dies so sein soll wegen fester max. länge) , zähler mitlaufen lassen , der dann weiß wieviele Punkte eingegeben wurden.



  • Das habe ich verstanden mit do...

    aber wieso kann ich das nicht so umschreiben

    do
    {
       std::cout << "Nochmal (Ja) ?: ";  // Frage stellen
       std::cin >> eingabe;   // Eingabe abwarten
    }
    while(eingabe != "J" || eingabe != "j" || eingabe != "N" || eingabe != "n" );  // wenn nicht mit Ja beantwrotet, dann zum Schleifenbeginn
    }
    

    wenn ich dann j oder J eingebe macht er immer weiter. Seltsam



  • Gib Dir wenigstens die Mühe und schau Dir mal an was Du da machst



  • Bitte genauer lesen! Ein Punkt ist ein Paar, kein einzelner Wert und ganz sicher kein char. Das steht sowohl in der Aufgabenstellung als auch hier im Thread.

    Eigentlich mach ich ja nicht für andere Leute die Aufgaben, aber ausnahmsweise hier mal ein Grundgerüst.

    #include <iostream>
    #include <string>
    
    int main()
    {
        int Anzahl;
        std::cout << "Anzahl der Punkte: ":
        std::cin >> Anzahl;
    
        if (Anzahl<3)
            Anzahl = 3;
    
        double Laenge = 0;
    
        double x0, y0; // erster Punkt (für Längenberechnung geschlossenes Poly benötigt)
        double x1, y1; // vorheriger Punkt
    
        for (int i=0; i<Anzahl; ++i)
        {
           double x, y;
           // ToDO: hier einen Punkt in (x, y) einlesen
    
           if (i==0)
           {
               // Ersten Punkt merken
               x0 = x;
               y0 = y;
           }
           else
           {
              // ToDo: Distanz zwischen den beiden Punkten (x, y) und (x1, y1) berechnen (Pythagoras)
              // ToDo: Ergebnis zu Laenge hinzuaddieren
           }
    
           // Punkt merken
           x1 = x;
           y1 = y;
    
           if (i>=2)
           {
               char weiter;
               // ToDo: In einer while-Schleife Eingabe abfragen, bis 'j', 'n', 'j' oder  'N' eingegeben wird (einlesen erfolgt in die Variable weiter
    
               if (weiter=='n' || weiter=='N')
                   break;
           }
        }
    
        // ToDo: Ausgabe: Länge für offenes Poly steht in Länge
        // ToDo: Ausgabe: Länge für geschlossenes Poly ist gleich Länge offenes Poly plus Entfernung zwischen (x0, y0) und (x1, y1)
    }
    


  • Habe ich wirklich wenn Eingabe ungleich Ja ist dann bricht er ab aber die kann ich doch durch || miteinander verbinden



  • @Knuddlbaer: Es gibt eigentlich keinen Grund sich die Punkte zu merken. Mach braucht immer nur den aktuellen, den davor und für geschlossene Polygone noch den allerersten.



  • Vielen herzlichen ddank dafür



  • dns schrieb:

    Habe ich wirklich wenn Eingabe ungleich Ja ist dann bricht er ab aber die kann ich doch durch || miteinander verbinden

    Nein, || ist ein logisches ODER, das logische UND schreibt sich &&



  • Wenn ich 5 oder eine var. Zahl bei deinem Progrmm eingebe errechnet er nix



  • Hallo

    dns86 schrieb:

    Wenn ich 5 oder eine var. Zahl bei deinem Progrmm eingebe errechnet er nix

    Hast du dich neu registriert?

    chrische



  • Ja wieso?



  • dns schrieb:

    Ja wieso?

    Weil es sehr irritierend und auch "bad style" ist, mit mehreren Usern im selben Forum zu arbeiten (gilt generell)....

    Gruß,

    Simon2.



  • Intressant ich heisse nur dns und habe mich gestern hier angemeldet, natürlich bin ich auch bei anderen foren angemeldet aber hier nur einmal ⚠ ⚠ ⚠


Anmelden zum Antworten