[Neuling] Hilfe xD [/Neuling]
-
Hi leute. Ich brauche mal kurz eure Hilfe. Ich poste einfach mal den Code und ihr werdet schon sehen, worum es geht.

#include <iostream> using namespace std; int main() { int Montag; int Dienstag; int Mittwoch; int Donnerstag; int Freitag; int Samstag; int Sonntag; int y; cout << "Welchen Tag haben wir heute? "; cin >> y; if (y==Mittwoch) cout << "Ja. Das ist richtig.\n"; else cout << "Nein... Versuchs nochmal.\n"; return 0; }Soweit ich weiß, ist da doch alles richtig.... Doch immer wenn ich es ausführe, kommt das:
http://img338.imageshack.us/img338/2971/helphg5.jpgDabei ich es eigentlich definiert.... Oder nicht? xD

Naja... Sag schon mal jetzt danke... ^^
mfg Walfran
-
Definiert ist ihre Existenz, aber nicht ihr Wert.
-
Was muss ich also machen? xDD

-
Ihren Wert definieren.
-
Hmm...
#include <iostream> using namespace std; int main() { int Montag; int Dienstag; int Mittwoch; int Donnerstag; int Freitag; int Samstag; int Sonntag; int y; cout << "Welchen Tag haben wir heute? "; cin >> y; Mittwoch=y; if (y==Mittwoch) cout << "Ja. Das ist richtig.\n"; else cout << "Nein... Versuchs nochmal.\n"; return 0; }Jetzt kommt immer. "Ja. Das ist richtig." als Antwort. Auch wenns nicht richtig ist :D. Verstehe irgendwie nicht :(.
-
C und co weisen Variablen im Allgemeinen keine Werte zu, wenn du es nicht tust.
Welchen Wert hat die Zahl namens Mittwoch also?
Mittwoch=y;Die Zahl, die in y steht.
Welche Wert haben die Zahlen denn nu, die nach den Wochentagen benannt sind?
-
wie wärs mit :
#include <iostream> using namespace std; int main() { int Montag = 1; int Dienstag = 2; int Mittwoch = 3; int Donnerstag = 4; int Freitag = 5; int Samstag = 6; int Sonntag = 7; int y; cout << "Welchen Tag haben wir heute? "; cin >> y; if (y==Mittwoch) cout << "ist die Variable Mittwoch.\n"; else cout << "Nein... falsche Variable\n"; return 0; }komme zwar nicht ganz drauf was du damit bezwecken willst...
-
^^ Lol...
Danke...
Ich probiere jetzt mal was anderes aus 
-
deiner eingabe im screenshot nach zu urteilen, meintest du wohl eher das:
#include <iostream> #include <string> using namespace std; int main() { string tag; cout << "Welchen Tag haben wir heute? "; cin >> tag; if (tag == "Mittwoch") cout << "Ja. Das ist richtig.\n"; else cout << "Nein... Versuchs nochmal.\n"; }
-
bring dem Jung net direkt so was bei

#include <iostream> #include <string> int main() { std::string string_day; std::cout << "Welcher Wochentag ist heute? " << std::flush; std::cin >> string_day; std::cout << (string_day == "Mittwoch" ? "Ja, das ist richtig!" : "Nein. Vielleicht beim naechstens mal!") << std::endl return 0; }...
-
Ich nehme mal an, das war ironisch gemeint (D)Evil, oder? Nur sicherheitshalber.
Falls nicht habe ich es nicht verstanden.
-
Shinja schrieb:
Ich nehme mal an, das war ironisch gemeint (D)Evil, oder? Nur sicherheitshalber.
Falls nicht habe ich es nicht verstanden.???
Du hast es nicht verstanden.
-
ich vermute fast sogar das die eigentliche aufgabe auf ein "enum" abzielt, versuch es damit mal
-
Gut, dann erklärs mir bitte. Was ist der Nachteil von
#include <iostream> #include <string> using namespace std; int main() { string tag; cout << "Welchen Tag haben wir heute? "; cin >> tag; if (tag == "Mittwoch") cout << "Ja. Das ist richtig.\n"; else cout << "Nein... Versuchs nochmal.\n"; }gegenüber
#include <iostream> #include <string> int main() { std::string string_day; std::cout << "Welcher Wochentag ist heute? " << std::flush; std::cin >> string_day; std::cout << (string_day == "Mittwoch" ? "Ja, das ist richtig!" : "Nein. Vielleicht beim naechstens mal!") << std::endl return 0; }Das 2. ist etwas kürzer, ist dafür aber halt etwas schwerer zu verstehen. Falls es um das Vermeiden von "using namespace std;" geht: das kann man meiner Meinung (und soweit ich weisz sind einige andere im Forum auch dieser Meinung) doch ruhig schreiben, insbesondere wenn man nur mit einem namespace arbeitet.
Das ist jetzt nicht ironisch gemeint, ich bin Anfänger und würde mich gerne belehren lassen.
-
Wtf? <_>
Soweit bin ich noch nicht
Trotzdem danke

-
Shinja schrieb:
Gut, dann erklärs mir bitte. Was ist der Nachteil von
Das ist jetzt nicht ironisch gemeint, ich bin Anfänger und würde mich gerne belehren lassen.Keine panik, deine version ist richtig. der unterschied ist nur, dass deine version schöner zu lesen ist und kein unnötiges std::flush enthält ;)(zudem benutzt es keinen unnötigen ungarische notation abklatsch wie "string_", aber das führt jetzt zu weit). ich find deine Lösung gut

-
Hmm otze ... ist ja direkt wieder niedlich.
1. Hat das so wenig mit der Ungarischen Notation zu tun wie ka was ^^ Und welche Interpretation der Ungarischen Notation meinst du denn? Die von MS?
2. Hmm der Unterschied besteht eigentlich im wesentlichen nur darin das ich nicht using namespace genutzt habe ... und es etwas "kürzer" geschrieben hab ... ob man letzteres als vorteilig sieht... ist Ansichtssache ... naja scheint ja alle der Meinung zu sein, das man das einfach so nutzen kann(using) ... dann fragt sich ein Anfänger aber leicht, wenn er zufällig eine Funktion mit dem selben Namen wie im Namespace schreibt, warum denn da ne Fehlermeldung kommt ... und später bei intensiver namespace-Verwendung ist es auch nicht wirklich empfehlenswert.
-
@(D)Evil Ich dachte immer das die Namesauflösung von oben nach unten geht, sprich sie fängt bei dem aktuellen Namensraum an und hangelt sich immer weiter nach unten (using direktiven). So gesehen wüsst ich nicht warum ein Fehler auftretten sollte wenn man in seinem eigenen Namesraum etwas neu definiert? Wird dann nicht einfach die neue Definition genommen?
Gruß,
Baracke
-
Leute benutzt mal die Suche, das Thema gibts schon öfters

Ich glaube im letzten Thread zum Thema war das Fazit in etwa:
1. Using in Headern ist böse.
2. Using in Implementierungen ist ok.
3. Man kann durch ändern der Using-Direktive (z.B.) auf einen Schlag alle strings in einer Datei aus dem namespace karl statt std benutzen.In der Hinsicht wäre sogar am praktischsten ein "using std::string" in der Implementierung. Denn kann ich auf "using karl::string" ändern und der Rest kann stehenbleiben. Ausserdem spart using in nem Standard-C++-Konsolenwerk mit Sicherheit ein drittel aller non-whitespaces des Quelltexts ein
