C++ Problem
-
Hihi... ja es ist der gleiche nur, ihc meine das eingangsbeispiel ist doch auch das gleiche nur das ich stadt dessen ich bei den couts statt die Zahl von anfang an zu definieren einfach die Variable ausgebe.... aber gut du hast recht es ist fehleranfälliger... aber ich mag es lieber wenn es wenig Klammern gibt
:p
-
sieh dir deinen code an:
gebe ich "1" ein, so lautet die ausgabe "Die Zahl ist1".
dir fehlt also ein leerzeichen. was machst du nun? du musst den code insgesamt an zehn stellen ändern, nämlich bei jedemcase ...:und überall ein leerzeichen eingeben.
das ist ineffizient.hättest du code wie folgenden gehabt:
unsigned int a; cin >> a; if (a <= 10) { cout << "Die Zahl ist" << a << '\n'; } else { cout << "Fehler: Eingabe darf nicht größer als 10 sein.\n"; }dann müsstest du den code nur an einer stelle ändern.
/edit: jaja, die deutsche satzstellung...
-
unsigned int a = 0; std::cin >> a; std::cout << "Die Zahl ist " << ( a > 10 ? "fehlerhaft": std::stringstream( a ).str() ) << std::endl;is untested

-
@queer_boy
Bei deinem Code wird aber auch die 0 akzeptiert.
-
Rubber les das hier mal:
http://www.lerneniminternet.de/htm/c++/probe.html
Da wird es erklärt.
Ich bin mir ganz sicher viele Leute hier in diesem Forum könnten die innerhalb von 10 min die richtige Antwort posten.
Aber irgendwie macht das hier keiner dir werden eigentlich nur hinweise gegeben wie du es machen könntest.
Ich find das manchmal etwas blöd.
Weil wenn man an einer Sache schon wer weiss wie lange dran sitzt und es einfach net hinbekommt dann macht es auch irgendwann kein spass mehr.
Dann wäre man schon froh über eine Antwort.^^
Warum ich dir keine direkte Antwort geben: Weil ich auch net auf anhieb weiss wie es geht^^
Aber viele hier im Forum wüssten es da bin ich mir ganz sicher.
naja hf & gl :>
-
std::stringstream hat nen Konstruktor der nicht für std::string ist? Naja ... mein nicht

unsigned int value(0); std::cin >> value; std::cout << "Die Zahl ist "; if (value < 0 || value > 10) std::cout << "fehlerhaft!\n"; else std::cout << value << std::endl;
-
Haha... Dachte schon auf der letzten Seite, was es da noch gross was am Code zu ändern gibt, nachdem
cout << "Die Zahl ist" << a << '\n';geschrieben worden ist.. - Und jetzt diese Disskusion.

-
(D)Evil schrieb:
std::stringstream hat nen Konstruktor der nicht für std::string ist? Naja ... mein nicht

unsigned int value(0); std::cin >> value; std::cout << "Die Zahl ist "; if (value < 0 || value > 10) std::cout << "fehlerhaft!\n"; else std::cout << value << std::endl;Es müsste value <= 0 heißen. :p
-
(D)Evil schrieb:
std::stringstream hat nen Konstruktor der nicht für std::string ist? Naja ... mein nicht

Nö, aber so ähnlich geht es:
std::cout << "Die Zahl ist " << (a > 10 ? "fehlerhaft" : static_cast<std::stringstream&>(std::stringstream() << a).str()) << std::endl;Nicht, dass ich sowas empfehlen würde.

-
wo ist der kotz-smilie?
-
Hmm nee eigtl. != 0
Denn unsigned kann nicht negativ sein
Sorry 