C++ Bool, wie kann von ich außen eingeben, dass das Licht "an" oder "aus" sein soll?

3 Antworten

printf? du sprichst doch von c++..

zusammengequetscht in eine Datei (sorry, dass es nicht so hübsch ist, du kannst es ja verbessern):

#include <iostream>
#include <string>

using namespace std;

bool tastatureingabe(string &eingabe, bool &eingeschaltet);

int main(void)
{
    string eingabe;
    bool eingeschaltet = false;

    cout << "Soll das Licht an oder aus sein?" << endl;


    while(tastatureingabe(eingabe, eingeschaltet) != true)
    {
        tastatureingabe(eingabe, eingeschaltet);
    }

    cout << "Das licht ist " << (eingeschaltet ? "an" : "aus") << endl;
    cin.get();

    return 0;
}

bool tastatureingabe(string &eingabe, bool &eingeschaltet)
{
    getline(cin, eingabe);

    if(eingabe == "an")
    {
        eingeschaltet = true;
    }
    else
    {
        if(eingabe == "aus")
        {
            eingeschaltet = false;
        }
        else
        {
            cout << "Deine Eingabe ist ungueltig!" << endl;

            return false;
        }
    }

    return true;
}


da wäre noch der verbesserungsvorschlag den inhalt von eingabe zu leeren. macht jetzt aber nicht so viel aus, ausserdem kenne ich ja nicht die genaue aufgabenstellung.

1

Holy moly was hab ich bloß für sche*sse fabriziert.. funktioniert zwar, das motto ist aber bei komplexeren geschichten so nicht unbedingt die sparsamste methode. Wird zeit für eine kleine pause.

Das untere sieht etwas sinnvoller aus.

bool run = true;    
while(run)
{
 if(tastatureingabe(eingabe, eingeschaltet))
 {
  run = false;
 }
}
0

Über std::cin aus der Bibliothek iostream kannst du eine Konsoleneingabe machenlassen.
Die Nutzereingabe kannst du dann für deinen schalter nutzen.

Ja, cin ist klar. Geht trotzdem nicht.

0
@waldbiene74

Eine Möglichkeit es umzusetzen:

#include <iostream>
int main(){
    bool schalter;
    int i;

    std::cin >> i;
    if(i == 1){
        schalter = true;
    }else{
        schalter = false;
    }
    printf("Das Licht ist %s.", schalter ? "an" : "aus");
    
    return 0;
}
0

Ja dann musst du den Benutzer auffordern eine Eingabe zu tätigen und dann diese Eingabe entgegennehmen dies machst du am besten mit std::cin

Ja, cin ist klar. Geht trotzdem nicht.

0