NO0b kommt...;)again;)
-
Also ich hab n' Prob mit einem Programm. Hier ist es:
#include <iostream> using namespace std; short x = 0; int main() { cout << " Bitte gib einen Wert(Zahl);) ein \n " << endl; cin >> x; if (x = (100 || 200 || 300)) { x = x*4; } if (x <= (100 || 110)) { x = 400; } else { x = 0; } cin.get; return 0; }
Und wenn ich es compile gibt mir Dev-C++ die Fehlermeldung:
27 C:\Dev-Cpp\if3.cpp statement cannot resolve address of overloaded function
Was ist da falsch???
und außerdem wenn ich es ausführe kann ich nur die zahl eingeben und dann schliesst sich das fenster wieder...nachdem ich die entertaste gedrückt habe...
help...;)
-
p3ac3 schrieb:
Was ist da falsch???
cin.get**()**;
Deine Oder-Konstruktionen sind aber auch nicht ganz richtig. Du musst jeden Vergleich einzeln ausschreiben.
-
if (x == 100 || x == 200 || x == 300) x = x*4; if (x <= 100 || x <= 110) x = 400; else x = 0; cin.get();
-
und vielleicht sinnvollere Threadüberschriften....
-
also jetzt hab ichs so stehen:
#include <iostream> using namespace std; short x = 0; // deklariert die var. x und weist ihr den wert 0 zu int main(void) { cout << " Bitte gib einen Wert ein: "; cin >> x; // erwartet wert eingabe von var. x if (x == 100 || x == 200 || x == 300 ) // wenn x gleich 100,200,300 ist, x = x*4; //dann mulzipliziere x *4 if (x <= 100 || x >= 110) // wenn x zwichen 100 unf 110 ist, x = 400; //gib x den wert 400 else //wenn alles nicht zutrifft dann, x = 0; // gib x den wert 0 ! cin.get(); return 0; }
aber wenn ichs ausführe kann ich immer noch nur eine zahl eingeben und dann schließt sichdas fenster wieder...
-
was soll das programm auch andres machen?
Du gibst keine zahl mehr aus oder sonst irgendwas!
und dann würd ich deine konstruktion nich
if
if
elseaufbauen, sondern
if
else if
else
-
p3ac3 schrieb:
aber wenn ichs ausführe kann ich immer noch nur eine zahl eingeben und dann schließt sichdas fenster wieder...
Win32-Konsolen-Applikationen schließen sich von selbst, wenn sie komplett ausgeführt wurden.
Lösung: Entweder direkt aus der Konsole heraus das Programm starten, oder am Schluss noch eine "wait"-Funktion einbauen. Siehe dazu auch: Win32-Konsole FAQ - Automatisches schließen verhindern
Caipi
-
if (x <= 100 || x >= 110) // wenn x zwichen 100 unf 110 ist,
so wies da steht is es genau umgekehrt: das if tritt immer dann ein, wenn x kleiner-gleich 100 oder x größergleich 110 ist, dh genau die werte bei denen das if zutreffen soll werden ausgeschlossen
-
Caipi schrieb:
p3ac3 schrieb:
aber wenn ichs ausführe kann ich immer noch nur eine zahl eingeben und dann schließt sichdas fenster wieder...
Win32-Konsolen-Applikationen schließen sich von selbst, wenn sie komplett ausgeführt wurden.
Lösung: Entweder direkt aus der Konsole heraus das Programm starten, oder am Schluss noch eine "wait"-Funktion einbauen. Siehe dazu auch: Win32-Konsole FAQ - Automatisches schließen verhindern
Caipi
darum hat er wohl das cin.get() hingeklatscht, nur das allein hilft nich @ threadsteller!
-
ich habs jetzt so gemacht:
#include <iostream> using namespace std; short x = 0; // deklariert die var. x und weist ihr den wert 0 zu int variable; int main() { cout << " Bitte gib einen Wert ein: "; cin >> x; // erwartet wert eingabe von var. x if (x == 100 || x == 200 || x == 300 ) // wenn x gleich 100 ist, { cout << " x = " << x << '\n'; x = x*4; //dann mulzipliziere x *4 } else if (x >= 100 || x <= 110) // wenn x zwischen 100 und 110 liegt { cout << " x = " << x << '\n'; x = 400; //gib x den wert 400 } else //wenn alles nicht zutrifft dann, { cout << " x = " << x << '\n'; x = 0; // gib x den wert 0 ! } cin >> variable; return 0; }
jetzt kann ich zwar die zahl iengeben und das fenster bleibt offen aber er greift dann icht auf die if funktionen zu?? warum??
-
1. sch... überschrift!!!
2. was geht nicht??? der error? das fenter schliessen? die geheimformel um die weltherschafft an sich zu reissen??? oder was
-
nee das fenster schliesst sich immer wieder nach dem ich die erste zahl eingegebnen hab...sry wegen der übeschrift...
...
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html
probiers damit.
-
oder statt des cin.get
kannste auch
int dummy; cin >> dummy;
machen.
oder wenn du die variable sparen willst auch ein einfaches
cin >> x; // das von oben halt, brauchst ja eh nicht mehr :)
-
und um sone quick'n'dirty lösung zu vermeiden gibts den EIntrag in der FAQ (link siehe oben)
-
THE_FreaK schrieb:
und um sone quick'n'dirty lösung zu vermeiden gibts den EIntrag in der FAQ (link siehe oben)
jetzt komm, 1. ist das ergänzend wenn der den link zur FAQ nicht checkt
2. der pc wird nicht explodieren
3. zu einem quick and dirt programm gehört auch ein quick 'n dirt'y'o lösung
4. was soll ausserdem grossartiges passieren? die variable wird doch freigegeben und das wars. wo sind da also die nachteile fürs OS ?
-
newkid_ schrieb:
THE_FreaK schrieb:
und um sone quick'n'dirty lösung zu vermeiden gibts den EIntrag in der FAQ (link siehe oben)
4. was soll ausserdem grossartiges passieren? die variable wird doch freigegeben und das wars. wo sind da also die nachteile fürs OS ?
Was ist wenn noch Zeichen im Input-Puffer stehen? Dann bewirkt diese Anweisung wirklich großartiges... :p
Deswegen (ich wiederhole mich zwar ungern aber was solls) siehe besser die Win32 und Konsolen-FAQ. (Direkter Link zum Thread wurde bereits zweimal gepostet).
Caipi
-
Caipi schrieb:
Was ist wenn noch ein '\n' im Input-Puffer steht? Dann bewirkt diese Anweisung wirklich großartiges... :p
Caipi
oder was ist wenn nachdem im puffer der code eines üblen wurms anfängt
oder der code zu einer maschine die aus gülle gold herstellen kann
-
newkid_ schrieb:
oder was ist wenn nachdem im puffer der code eines üblen wurms anfängt
oder der code zu einer maschine die aus gülle gold herstellen kannWarum so Aggresiv?
Ist das so utopisch wie ein Wurm?
Desweiteren habe ich mich in meinem Posting auf was du dich jetzt bezogen hast falsch ausgedrückt, ich meinte nicht '\n' sondern allgemein ein Zeichen, welches ungleich einem Blank ist
Caipi
-
nächste version(funktioniert immer noch nicht... :
#include <iostream> using namespace std; void wait() { cin.clear(); cin.ignore(std::cin.rdbuf()->in_avail()); cin.get(); } short x = 0; int main() { cout << " Bitte gib einen Wert ein: "; cin >> x; if (x == 100 || x == 200 || x == 300 ) { cout << " x = " << x << '\n'; x = x*4; } else if (x >= 100 || x <= 110) { cout << " x = " << x << '\n'; x = 400; } else { cout << " x = " << x << '\n'; x = 0; } return 0; }
und es geht nicht darum das wenn ich es ausführe es sofort weider schließe, sondern das es sich erst schließt nachdem das erste cout ausgeführt wurde und ich den wert für x eingegebne habe...