Programm mit Variablen



  • Hallo

    fange seid gestern mti c++ an und mache auch grosse vortschritte und habe heute mal versucht um zu testen was ich bereits schon weiss und kann habe wollt ich mal mein eigenes programm schreiben jedoch meldet mir der compiler folgenden fehler:

    C:\Programme\Microsoft Visual Studio\MyProjects\Variablen\Variablen1.cpp(15) : error C2297: '<<' : Ungültig, da der rechte Operand vom Typ 'char [11]' ist
    Fehler beim Ausführen von cl.exe.

    Variablen.exe - 1 Fehler, 0 Warnung(en)

    hier ist der code vom programm:

    #include <iostream.h>

    int Alter = 0;
    int MeinAlter = 16;
    int x = 0;

    void main(void)
    {
    cout << "Geben Sie Ihr Alter ein:";

    cin >> Alter;

    cout << "Sie sind " << Alter << " Jahre alt\n";

    cout << "Das heisst" << MeinAlter * x = Alter << " Sie sind " << x << " mal so alt wie ich\n";

    }

    es soll halt so aussehen das man sein alter eingibt und dann dort z..b. steht sie sind 8 mal so alt wie ich ... je nachdem

    würd mich freuen wenn mir jemand sagen kann was ich da verbessern muss damit es funktioniert danke im vorraus
    mfg BananaJoe321



  • Hallo BananaJoe321,

    die korrigierte Fassung:

    #include <iostream> // muss <iostream> ohne .h heißen; <iostream.h> ist veraltet
    
    int main() // int statt void
    {
        using namespace std; // wegen cout & endl
        int Alter = 0;      // lokale Variablen sind globalen vorzuziehen
        int MeinAlter = 16;
        int x = 0;
        cout << "Geben Sie Ihr Alter ein:";
    
        cin >> Alter;
    
        cout << "Sie sind " << Alter << " Jahre alt\n";
    
    //    cout << "Das heisst" << MeinAlter * x = Alter << " Sie sind " << x << " mal so alt wie ich\n";
    //                            ********************* das ist hier falsch
    
        x = Alter / MeinAlter; // Achtung: Integer-Division
        cout << "Das heisst, Sie sind " << x << " mal so alt wie ich\n";
        return 0;
    }
    

    Gruß
    Werner



  • Gibt der Compiler nur diese eine Fehlermeldung aus?
    Denn dein Quellcode hat ein paar mehr Fehler.

    Hier ist dein Quellcode, so das du ihn ausführen kannst (auch mitm GCC):

    #include <iostream>
    using namespace std;
    
    int Alter = 0;
    int MeinAlter = 16;
    int x = 0;
    
    int main(void)
    {
    	cout << "Geben Sie Ihr Alter ein:";
    
    	cin >> Alter;
    
    	cout << "Sie sind " << Alter << " Jahre alt\n";
    
    	cout << "Das heisst" << (Alter = MeinAlter*x) << " Sie sind " << x << " mal so alt wie ich\n";
    	return 0;
    }
    

    Folgende Fehler waren vorhanden:
    [list]

    1. iostream ist zwar eine Headerdatei, aber bei C++ wird das .h bei Standard-Headerdateien weggelassen.

    2. Die Befehle cout und cin befinden sich in einem bestimmten "Namensbereich", dieser lautet std (standard). Damit man nun auf diese Zugreifen kann, muss man entweder "using namespace std;" benutzen, damit werden die Befehle automatisch dem std-Bereich zugeordnet. Oder man schreibt jeweils ein "std::" vor den Befehl.
      Also zum Beispiel:

    std::cin >> Alter;
    
    1. Bei einer Zuweisung, steht links die Variable in die geschrieben werden soll, und Rechts die Variable, von der gelesen werden soll. Außerdem solltest du für Zuweisungen eine eigene Befehlszeile benutzen.
      Also so:
    Alter = MeinAlter*x;
    
    1. Die Hauptfunktion heißt "int main()" und hat einen Rückabewert. Durch diesem Rückabewert teilst du deinem Betriebsystem mit, ob alles korrekt verlaufen ist. Falls alles korrekt verlaufen ist, gibt dieser Rückabewert 0 zurück.
      Somit kommt ans Ende der Funktion ein:
    return 0
    

    Nun kannst du dein Programm zwar starten, aber ich glaube nicht, dass es dir das Ergebnis liefert welches du haben willst.
    Denk darüber nach wo dein Fehler liegt, wenn du dann noch Probleme hast, kann man dir helfen. 🙂



  • Da gibt man sich Mühe und dann ist man schon wieder langsamer. :|



  • werde das gleich mal testen 🙂

    vielen dank für eure mühe



  • onoz schrieb:

    1. Die Hauptfunktion heißt "int main()" und hat einen Rückabewert. Durch diesem Rückabewert teilst du deinem Betriebsystem mit, ob alles korrekt verlaufen ist. Falls alles korrekt verlaufen ist, gibt dieser Rückabewert 0 zurück.
      Somit kommt ans Ende der Funktion ein:
    return 0
    

    int main - ja
    return 0 - erfolgt implizit wenn man es weglässt


Anmelden zum Antworten