C++ Bool, wie kann von ich außen eingeben, dass das Licht "an" oder "aus" sein soll?
Also ich soll mit dem Datentyp bool anzeigen lassen, ob das Licht "an" oder "aus" sein soll.
Ich möchte, dass der Benutzer angeben muss, ob das Licht an oder aus sein soll.
Bisher habe ich nur das:
bool schalter = true;
printf("Das Licht ist %s.", schalter ? "an" : "aus");
Hier wird mir ja immer nur angezeigt, dass das Licht an ist.
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.
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;
}
}
Über std::cin aus der Bibliothek iostream kannst du eine Konsoleneingabe machenlassen.
Die Nutzereingabe kannst du dann für deinen schalter nutzen.
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;
}
oh, das kann man aber leicht austricksen!
ps: du hast c in deinem code.
Daher ist es ja auch nur "Eine Möglichkeit es umzusetzen".
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.