Switch mit & Verknüpfung?
-
zeig mal mehr code..
-
char ist 1 zeichen, da kannst nicht einfach nen string reinschieben
-
Hier der komplette Code.
#include <iostream> #include <iomanip> using namespace std; int main() { //Variablendeklaration int laenge; int breite; int hoehe; int gewicht; int ziffer; int zusatzleistung; float preis; float gesamtpreis; char art; char brief; //Eingabe cout<<"Geben Sie Laenge, Breite, Hoehe und Gewicht des Briefes ein:\n"; cout<<"Laenge (in mm): "; cin>>laenge; cout<<"Breite (in mm): "; cin>>breite; cout<<"Hoehe (in mm): "; cin>>hoehe; cout<<"Gewicht (in g): "; cin>>gewicht; cout<<"\n\nAus folgenden Zusatzleistungen koennen Sie waehlen:\n"; cout<<"1-Einschreiben\n"; cout<<"2-Eigenhaendig (Einschreiben)\n"; cout<<"3-Rueckschein (Einschreiben)\n"; cout<<"4-Einschreiben Einwurf\n"; cout<<"0-keine Zusatzleistung\n"; cout<<"Geben Sie nun die entsprechende Ziffer ein: "; cin>>ziffer; //Berechnung if(laenge>=140 && breite>=90 && laenge<=235 && breite<=125 && hoehe<=5 && gewicht<=20) { preis=0.55; brief="Standartbrief"; } else if(laenge>=100 && breite>=70 && laenge<=235 && breite<=125 && hoehe<=10 && gewicht<=50) { preis=1.00; brief="Kompaktbrief"; } else if(laenge>=100 && breite>=70 && laenge<=353 && breite<=250 && hoehe<=20 && gewicht<=500) { preis=1.00; brief="Großbrief"; } else if(laenge>=100 && breite>=70 && laenge<=353 && breite<=250 && hoehe<=50 && gewicht<=1000) { preis=2.20; brief="Maxibrief"; } switch(ziffer) { case 1: zusatzleistung=2.05; art="Einschreiben"; break; case 2: zusatzleistung=1.80; art="Eigenhaendig (Einschreiben)"; break; case 3: zusatzleistung=1.80; art="Rueckschein (Einschreiben)"; break; case 4: zusatzleistung=1.60; art="Einschreiben Einwurf"; break; case 0: zusatzleistung=0.00; art="keine Zusatzleistung"; break; } gesamtpreis=preis+zusatzleistung; //Ausgabe cout<<brief<<" - "<<art<<endl; cout<<"Das Porto betraegt: "<<gesamtpreis<<" Euro\n\n"; return(0); }Alles was mit char deklariert wurde geht leider nicht. Oo
[Also in der Berechnung im if/else Teil und drunter im switch.]//edit
char ist 1 zeichen, da kannst nicht einfach nen string reinschieben
Okay, werd dass mal ändern. Mal schauen ob's dann funktionert.

-
#include <cstring> char myString[50] = ""; strcpy(myString, "Test"); //oder besser strncpy()ansonsten natürlich die Klasse string
-
[s23] schrieb:
...
Grundsätzlich kannst du in einem case-Fall beliebig viele Zuweisungen machen (oder andere Anweisungen ausführen), ich rate dir aber sowohl von char* als auch char[] als String ab. Mit std::string lebt es sich einfacher (und da klappt auch die Zuweisung).
cu André
-
Hmm.. Komme damit irgendwie nicht so ganz klar.
Wie kann man ein Wort in einer Variable speichern? - Finde das irgendwie nur für Zahlen.#include <cstring>
char myString[50] = "";
strcpy(myString, "Test"); //oder besser strncpy()
Ist das C oder C++?
In der Art hab ich noch nie was gesehen :<
Wo kann ich darüber mehr nachlesen?//edit
Aaaah... danke asc!
So klappt das ganze nun. 
-
Das ist C.
Benutz einfach <string>
string art, brief;
-
Dankeschön, funktioniert nun alles!

-
Du musst zwischen einem Zeichen (char) und einer Zeichenkette(char-Array + Nullterminierung) differenzieren.
@ZoopaJr: Wenn du die korrekten <c...>-Header nutzt, musst du auch beachten, das damit die Funktionen im Namensraum std liegen!
#include <cstring> char string[28] = {0}; std::strncpy(string, "Eigenhaendig (Einschreiben)", 28);wäre das korrekte Beispiel.
#include <string> std::string string("Eigenhaendig (Einschreiben)");wäre die beste Variante.
-
ups natürlich, danke für den Hinweis