Hilfe bei Hallo Welt


skymaster1

Grünschnabel
Und ich brauche schon wieder hilfe.

Habe nun nach den ersten schritten das "Hallo Welt" versucht.

leider klappt das mit dem return o; nicht

#include <iostream>
using namespace std;

int main()
{
cout<<"Hallo Welt"<<endl;
}
return 0;

und als fehler bringt er dann

syntax error before 'return'

ich denke für euch ist das kein problem, aber ich bin blutiger anfänger und bitte deshalb um eure mithilfe :)

danke
 

Tobias K.

Erfahrenes Mitglied
moin


Code:
#include <iostream>
using namespace std;

int main()
{
     cout<<"Hallo Welt"<<endl;

     return 0;
}
So muss das aussehen!


mfg
umbrasaxum
 

BadMourning

Erfahrenes Mitglied
Weißt du schon was eine Funktion ist ? Eine Funktion tut was, das was man ihr sagt.
Der Anfang der Funktion ist deren Deklaration, und die öffnende Klammer '{', dann
kommt das was die Funktion tun soll, und damit sie weiß, wo sie zu Ende ist kommt
eine geschlossene Klammer '}'. Na, kommt's ? Ja, du mußt das return 0 innerhalb der
geschweiften Klammern schreiben...

Greets,
BadMourning
 

skymaster1

Grünschnabel
also das ich das return innerhalb der klammer schreiben muß dachte ich mir auch, habe ich auch versucht, nur ohne erfolg, naja ist klar das ich doch erst anfänger bin.

also fehler bringt er keinen mehr, danke auch dafür nur ist das normal das das fenster sofort wieder zu geht?

bitte nicht schimpfen :confused:

danke

P.S das fenster nach ausführung der exe-datei
 

Tobias K.

Erfahrenes Mitglied
moin


Du könntest vor dem return z.B.:

getch() schreiben, dafür brauchst du die conio.h



oder du schreibst

char dummy;
cin.get(dummy);



mfg
umbrasaxum
 

skymaster1

Grünschnabel
SUPER

jetzt bin ich soweit glücklich.

das mit dem getch() hat leider nicht geklappt aber das zweite dafür.

kannst du mir noch sagen warum es jetzt offenbleibt

Nicht weil das jetzt drinsteht, sondern eine kurze erklärung zu den begriffen.

dafür währe ich dir sehr dankbar.

Wie gesagt ich bin Blutiger Anfänger, also bitte nicht schimpfen ;)

Kannst du mir noch sagen warum das anhalten bei folgendem beispiel nicht klappt?

#include<iostream>
using namespace std;

int main()

{
int aepfel=4;
int eingabe;
cout<<"Es sind 4 Aepfel da"<<endl;
cout<<"Wieviel Aepfel möchtest du essen?"<<endl;
cin>> eingabe;
aepfel=aepfel-eingabe;
cout<<"dann bleiben noch_"<<aepfel<<endl;
char dummy;
cin.get(dummy);
}

danke
 
Zuletzt bearbeitet:

Skeppi

Grünschnabel
das mit dem getch() hat nicht geklappt weil der befehl nicht in der <iostream> steht. ich würde dir raten so lang du ohnehin nur consolen programme schreibst system("pause"); zu benutzen, da kriegst du auch gleich ne ausgabe dabei das der user ne taste drücken soll und so ;) für das system zeugs musst du die stdlib oder stdio inkludieren (nicht ganz sicher, aber ich mein es wär die stdlib) also da wo "#include <iostream>" steht einfach #include <stdlib.h> drüber.
 

Tobias K.

Erfahrenes Mitglied
moin


Code:
#include<iostream>

using namespace std;

int main()
{
	int aepfel=4;
	int eingabe;
	
	cout<<"Es sind 4 Aepfel da"<<endl;
	cout<<"Wieviel Aepfel möchtest du essen?"<<endl;
	cin>> eingabe;
	aepfel=aepfel-eingabe;
	cout<<"dann bleiben noch_"<<aepfel<<endl;


	fflush(stdin);
	cin.get();

	return 0;
}
fflush leert nun den Eingabepuffer, vorher muss wohl noch ein Zeichen drin gewesen sein das dann an cin.get() weitergeleitet wurde.

cin.get() wartet darauf das ein Zeichen einegegeben wird, welches dann in einer Variable (hier dummy) gespeichert wird. BAer hab grad bemerkt das du keine Variable als Argument mit geben musst, also reicht die kruzvorm wie ich es im Beispeil geschrieben hab.

@skeppi:
Ich rate davon ab system("pause"); zu benutzen.


mfg
umbrasaxum
 
Zuletzt bearbeitet:

Aylon

Mitglied
So sieht ja ganz gut aus :)
Aber ich wuerde davon abraten fflush auf stdin zu nutzen weil es nur fuer outputstreams definiert ist bisher, obwohl es bei fast allen kompilern geht.
Mal gucken wenn ich zu hause bin und zeit hab kram ich mal vielleicht eine andere Lösung raus die auch geht. Vielleicht wird fflush ja mit dem naechsten standard mal auch fuer input geaendert offiziell.
 

Crazy_down

Erfahrenes Mitglied
ehhhm nochmal wegen dem fenster schließen,
Du kannst auch einfach
System("pause");
schreiben, sofern das Betriebssystem Windows ist.
Oder machst am Anfang deines Proggis ne If-Abfrage, welches OS es ist.
Dann einfach bei Windows "pause" und bei Linux "sleep" usw.


EDIT: hatte nicht gesehen das, das schon jemand geschrieben hat. sorry.
 

MCIglo

Gesperrt
Da du ja eine Console-Anwendung schreibst, führe sie doch einfach auch aus der Conosle aus.
Du brauchst nichts im Code extra zu schreiben, und das Fenster bleibt trotzdem offen :)

Start -> Ausführen... -> cmd -> OK -> cd [dein pfad zur exe] -> [name].exe -> Enter
 

canuzzi

Erfahrenes Mitglied
Anstatt ihm die Tipps zum offenhalten des Konsolenfensters zu geben, haett man ihm auch erklaeren koennen was passiert.
Du rufst dein Program auf, das oeffent ein Konsolenfenster, dass sich mit Programmende wieder schliesst. Die ganzen Konstruktionen mit gech(), sleep, ... zielen darauf das Programmende zu verzoegern, bis du etwas tust, wie zB einen Tastatutrdruck.

Die Alternative waere das Programm im einem geoeffneten Fenster zu starten, da dieses auch nach Programmende geoeffnet bleibt.
 

Tobias K.

Erfahrenes Mitglied
moin


@ canuzzi:
Hatte ich doch geschrieben, naja vielleicht anders ausgedrückt.

@ all die meinen man soll system("pause"); nehmen:
Ihr tankt euren Benziner auch mit Diesel?!
Warum so abhängig machen?
Und vorher prüfen welches OS es ist ist doch absolut unnötig wenn mans gleich richtig macht.


mfg
umbrasaxum