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]-
iostream ist zwar eine Headerdatei, aber bei C++ wird das .h bei Standard-Headerdateien weggelassen.
-
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;- 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;- 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 0Nun 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:
- 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 0int main - ja
return 0 - erfolgt implizit wenn man es weglässt
- 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.