es ist 7 Uhr am morgen und ich wollte mir aus Langeweile mal ein Calculator für ein Spiel schreiben.
Im Spiel gibt es ein Buch Crafting System und man braucht für ein Stufe 2 Buch z.B zwei Stufe 1 Bücher. Das geht bis Stufe 4 nach demselben Prinzip.
Wenn ich mein Code compilen möchte, dann bekomme ich solche Fehlermeldungen :
Code:
main.cpp|18|error: cannot bind 'std::istream {aka std::basic_istream<char>}' lvalue to 'std::basic_istream<char>&&'
c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\istream|872|note: initializing argument 1 of 'std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = int [4]]'
main.cpp|19|error: switch quantity not an integer
main.cpp|20|error: the value of 'x' is not usable in a constant expression
Code:
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
int main()
{
int x; // IVer
int y; // IIIer
int z; // IIer
int v; // Ier
int book [] = {x, y, z, v};
int anzahl;
cout << "x =IV, y = III, z = II, v = I";
cin.get();
system("cls");
cout << "Hallo, welche Sorte von Bücher wollen Sie haben ? ";
cin >> book;
switch (book) {
case x:
cout << "Wie viele IVer wollen sie haben ? ";
cin >> anzahl;
cout << "Sie brauchen " << anzahl / 0.5 / 0.5 / 0.5 << "I Bücher" <<endl;
break;
case y:
cout << "Wie viele IIIer wollen sie haben ? "
cin >> anzahl;
cout << "Sie brauchen " << anzahl / 0.5 / 0.5 << "I Bücher " << endl;
break;
case z:
cout << "Wie viele IIer Bücher wollen sie haben ? "
cin >> anzahl;
cout << "Sie brauchen " << anzahl / 0.5 << "I Bücher" << endl;
break;
default:
cout << "Sie können das Programm schließen";
break;
}
system("PAUSE");
return 0;
}
Wie man deutlich sieht, ist das Programm auch nicht sehr sinnvoll geschrieben. Ich würde gerne definieren, dass z.B int x = int y * 0.5 ist.
Aber dann weiß ich nicht, wie ich das nachher umsetzen soll. Mir fehlt da irgendwie die Idee. Oder falls ich nicht nur Stufe 4 Bücher, sondern auch noch Stufe 3 Bücher dazu craften möchte, dass das dann auch abgefragt wird. Wäre mit einer if Abfrage ja machbar, aber ich weiß nicht genau, wie ich dann von der einen case zur Anderen springe.
Hoffe mal, dass es verständlich ist, was ich meine.^^






meinte, war nicht, dass der Ausdruckt im switch konstant sein muss, sondern in den Cases.