cin macht eine schleife ôo
-
hmm
stimmt mit dem integer und stringd.h. bool ist default immer false
hmm ich mach trozdem immer ne "saubere" deklaration und schreibe = false rein. dann stimmt auf jedenfall immer bei allen compilern.
-
jo,
es liegt an der int deklaration.
einer integer variable kannst du ned einfach einen character übergeben.
deklarier y als char. musst dann aber auch die codestelle wo du vergleichst abändern, chars kannst ned so einfach wie vergleichen.
hoffe das beantwortet deine frage.und @ newkid:
es is echt egal ob ers noch dazuschreibt, wie schon erwähnt default = false
aber wenns spass macht.mfg Mindphreaker!
-
jup macht spass
mehr code of lineswieso nicht so einfach vergleichen?
das muesste doch genauso gehenif(y == "1") // was ist daran jetzt kompliziert?
Bye the way: bitte gewöhn dir aus spass "richtige" sprich aussagekräftige variablennamen an. ein x oder y ist nicht grad der hit.
besser z.b.
if(eingabe == "1")
-
es liegt an der int deklaration.
einer integer variable kannst du ned einfach einen character übergeben.
deklarier y als char. musst dann aber auch die codestelle wo du vergleichst abändern, chars kannst ned so einfach wie vergleichen.
hoffe das beantwortet deine frage.was sagt dir folgende deklaration?
class basic_istream{ //... basic_istream& operator>> (int& val ); //... }
versuchs mal so:
//ich erlaube mir mal, das ganz zu vereinfachen #include <iostream> using namespace std; int main() { int y=0; while(y != 1) { cin.ignore(cin.rdbuf()->in_avail());//streambuffer leeren cout << "Eingabe: " << endl; cin >> y; } return 0; }
-
nob6 schrieb:
bool x; while(x == false) {
Zugriff auf uninitialisierte Variable "x".
Richtig muss es heissen:
bool x = false; // "x" muss einen Wert haben while(x == false) {
Sonst hat "x" einen zufaelligen Wert, der meist ungleich 0 (false) ist.
-
Sonst hat "x" einen zufaelligen Wert, der meist ungleich 0 (false) ist.
false ist bei bool default, wie hier schonmal erwähnt wurde
-
newkid schrieb:
d.h. bool ist default immer false
otze schrieb:
false ist bei bool default, wie hier schonmal erwähnt wurde
Nope. Ein uninitialisiertes lokales bool hat einen undefinierten Wert.
C++ Standard schrieb:
Using a bool value in ways described by this International Standard as ‘‘undefined,’’ such as by examining the value of an uninitialized
automatic variable, might cause it to behave as if is neither true nor false.
-
newkid schrieb:
if(eingabe == '1') // <--- Aber so
[/cpp]
-
Whoa. Ist der gebufferte-Eingabe-Kram nicht langsam nen FAQ-Eintrag wert?
#include <sstream> #include <string> template<typename result_t> result_t read_from_cin(std::string const &prompt) { std::string eingabe; std::stringstream sstr; result_t ret; do { sstr.clear(); std::cout << prompt << std::flush; std::getline(std::cin, eingabe); sstr.str(eingabe); sstr >> ret; } while(!sstr); return ret; } // ... int x = read_from_cin<int>("Integer eingeben: ");
-
newkid schrieb:
Bye the way: bitte gewöhn dir aus spass "richtige" sprich aussagekräftige variablennamen an. ein x oder y ist nicht grad der hit.
Für Hilfsvariablen, die keine besonderen Daten speichern, gibt es meist keinen sinnvollen Namen. Solche Variablen heißen dann meist n,m,x,y oder tmp
Ausserdem sollte das nur ein Beispiel werden
Hab den Lösungsweg von Otze genommen, weil der wohl am besten für meine Zwecke geeignet ist
Btw. werd ich das mit der bool Sache ab jetzt berücksichtigen