string definierungs fehler?

6 Antworten

Tipp: In der Formatierungsleiste über dem Texteingabebereich hier gibt es das Symbol </>, mit dem man Quelltext als Quelltext formatieren kann. (Am besten erst zwei leere Absätze übereinander anlegen - also zwei Absatzumbrüche hintereinender -, dann den oberen leeren Absatz als Code formatieren und dann erst den Code einfügen)

int main()
{
  std::cout << "Wie alt sind sie?\n";
  std::cin >> alter;
  if (alter < 16)
  {
    std::string zutreffend = " Garnix";
  }
  if (alter > 15)  {
    std::string zutreffend = " Bier, das durch Gärung entsteht, wie Bier, Wein oder Sekt";
  }
  if (alter > 17)
  {
    std::string zutreffend = " Alles";
  }
  std::cout << "Bei einem Alter von " << alter << " Jahren, Duerfen sie " << zutreffend << " trinken.\n";
  std::cin >> exitapp;
}

Mit z. B.

std::string zutreffend = " Garnix";

deklarierst (und definierst) du eine neue Variable namens "zutreffend", die nur innerhalb des if-Blocks existiert und die Variable "zutreffend" von außerhalb des Blocks verdeckt.

Merke:

{Typname} {Variablenname};

bzw.

{Typname} {Variablenname} = {Anfangswert};

sind Variablendeklarationen. Ab hier ist die Variable bekannt und muss / darf nicht mehr neu deklariert (zu) werden.

-----

int

ist ein Typ. Vermutlich habt ihr eure ersten Variablen immer als Ganzzahlen (integer) deklariert und du hast daraus fälschlicherweise geschlossen, dass int die Einleitung einer Variablendeklaration ist.

-----

Streich einfach mal alle

std::string 

nach den ersten Deklarationen, lass das "//INT VAR" bzw. "INT STRING" weg und schau, was passiert.

Wenn du c++ gerade lernst dann nutz am besten unter den Headern noch den Befehl

using namespace std;

Dann fällt vor dem cout das nervige std schreiben weg.

Bei dem error gucke ich nochmal nach aber ka ob ich da helfen kann lerne selber noch.

44

Es gibt durchaus gute Gründe, "using namespace ..." nicht zu verwenden. Darauf wirst Du selbst noch kommen, wenn Du eigene namespaces verwendest.

1

Das Problem lieg darin, dass du in den if-Blöcken versuchst die Variable zutreffend erneut zu deklarieren statt ihr nur einen neuen Wert zuzuweisen.

Verwende also anstelle von

std::string zutreffend = " Garnix";

das:

zutreffend = " Garnix";
Woher ich das weiß:
eigene Erfahrung
30

Das ist die korrekte Antwort. Gut gesehen.

0

C++ und C#. Was sollte ich mit welcher Sprache machen?

Hallo,

ich kenne seit einiger Zeit die Sprachen C++ und C#. Was mich aber interessieren würde, ist, was man mit welcher Sprache am besten machen sollte (Graphic, Physik, Scripting, ...).

  • Wie ist die Verteilung von C++ und C# bei Windows?
  • Wie ist die Verteilung in Spielen oder IDEs, etc.?

Welche Sprache ist der bessere Alleskönner?

Und auf welche Sprache sollte man sich konzentrieren (zu lernen und um Erfahrungen zu sammeln)?

Danke im Voraus.

...zur Frage

Simple Multiplikation in C++

Hallöchen Freunde der Nacht ;)

Ich lerne im Moment C++ und soll jetzt als Hausaufgabe eine simple Multiplikation durchführen. Das ganze soll so aussehen, dass man in einer Eingabeaufforderung eine Zahl eingibt und diese dann mit 2 multipliziert wird. Mein Quelltext bisher :

include "stdafx.h"

include

using namespace std;

int _tmain()

{

int A;

cout<<"A :";

cin>>A;

cout<<"Sie haben "<<A<<" eingegeben.\n";

return 0;

}

Jetzt hab ich allerdings keine Idee, wie und wo ich dort was einfügen muss, damit A mit 2 multipliziert wird. Leider haben wir auch keine Lehrbücher und unsere Lehrerin hat und dazu auch nichts gesagt.

Danke schonmal im Vorraus ;)

...zur Frage

C++: Warum bricht meine if-else-Schleife immer ab?

Hey Community,

ich habe einen einfachen Code geschrieben und als Anfänger tue ich mich etwas schwer mit der if-else-Bedingung.

Zuerst dachte ich, für die Abfrage wäre ein Boolean einfacher, wobei man die Antwort "yes" auf true setzt. Da gab mir mein Compiler aber lauter Fehler aus (Dev C++).

Hier der Code:

#include <iostream>

using namespace std;

class Car {
  private:
    int Passengers;
    int Storage;
    int price;
    int ps;
    string brand;
    string colour;

  public:
    Car (string brand, int price, int ps, string colour) {
      this->brand = brand;
      this->price = price;
      this->ps = ps;
      this->colour = colour;
    }

    void printCar() {
      cout << brand
        << ":"
        << price
        << "EURO"
        << " "
        << "("
        << ps
        << ","
        << colour
        << ")"
        << endl;
    }
};
                                                                                                          int main (int argc, const char *argv[]) {
  string ans;
  string yes;
  string no;

  cout << "You've won 5000 Euro'" << endl;
  cout << "Do you want to buy a new car?" << endl;
  cin >> ans;

  if (ans == yes) {
    cout << " What kind of car do you want?" << endl;
  }
  else {
    cout << "Stop beeing poor!" << endl;
  }

  Car c1("BMW X3", 5000, 150, "red");
  Car c2("Mercedes C500", 4500, 200, "silver");
  cout << "Do you want a BMW?" << endl;
  cin >> ans;

  if (ans == yes) {
    cout << " Ok give me a moment.." << endl << endl;
    c1.printCar();
  }
  else {
    cout << "Let's see what we else got'" << endl << endl;
    c2.printCar();
    cout << endl;
    cout << "Oh you still got 500 Euro left!" << endl << endl;
  }

  cout << "A new car was bought." << endl << endl << endl;
  cout << "   _____" << endl;
  cout <<" _/__|__\_"<< endl;
  cout <<" |__O__O___|-#" << endl;
}

Ziel ist es, entweder einen BMW zu kaufen oder einen Mercedes.

Während meiner Versuche wurden mir entweder beide als verkauft ausgegeben oder nur angezeigt: "A new car was bought.".

Danke im Voraus.

...zur Frage

C++ Wie kann ich den Benutzter eine Rechenart auswählen lassen. (Konsolen Anwendung)

Also ich bin dabei C++ zu lernen und ich habe schon selber versucht das dass Problem mit einer char Variable zu lösen und dann mehrere if abfragen zu erstellen aber dass funktioniert nicht ganz, außerdem ist es eine Konsolen Anwendung.Kann mir jemand helfen ?

#include <iostream>

using namespace std;

int main(){
char Rechenart;
int Summe1, Summe2, Ergebnis;

cout << "Mit welcher Rechenart wollen sie Rechnen(Multiplikation*)(Divison/)(Addition+)(Subtraktion-)";
cin >> Rechenart;
cout << "Benutzereingabe:";
cin  >> Summe1;
cout << "Benutzereingabe:";
cin  >> Summe2;

Ergebnis = Summe1 * Summe2;

getchar();

std::cout << Summe1 << Rechenart << Summe2
    << " = "
    << Ergebnis
    << std::endl;

if (true)
{
 
}

else
{

}

getchar();
return 0;
}
...zur Frage

Was möchtest Du wissen?