Newbie hat Problem
-
ich hänge schon am Hello World!
Das konsolenprogramm verschwindet nach ner milisekunde.
mir wurde gesagt das ich meinen text um die wörter "system ("PAUSE")"
ergenzen sollte. funzt aber leider kein stück besser.
was kann ich tun?#include <iostream.h> int main() { cout << "Hello World!\n"; return 0; system ("PAUSE") }
-
Hallo,
Wenn du das System... vor das return schreiben würdest, würdest du etwas sehen. Lies dir bitte mal das hier durch.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html
-
Spyder schrieb:
return 0; system ("PAUSE") }Da fehlt ein Semikolon am Ende.
system ("PAUSE"); return 0; }Siehe zu dem Thema auch in der Konsolen FAQ.
-
Hallo Spyder,
hierbei empfehle ich dir die Funktion getch() in der Header-File conio.h
#include <iostream.h> #include <conio.h> int main() { cout << "Hello World!\n"; getch(); // Funktion aus conio.h return 0; }Jetzt hält dein Programm an dieser Stelle an, da es auf eine Charaktereingabe wartet. Sobald du nun eine beliebige Taste betätigst, beendet sich das Programm.
Gruß nki
-
Ehm dumme Empfehlung ...
#include <iostream> // Guck mal in den Standard ... <iostream.h> ist raus genommen // #include <conio.h> // Und das geht unter UNIX? int main() { std::cout << "Hello World!" << std::endl; // Und seid wann liegen die FUnktionen des Standards nichtmehr im Namensraum std? // getch(); // Funktion aus conio.h und damit nicht soo dolle. std::cin.get(); // return 0; // unnötig ... wird hier nicht gebraucht. }...
-
(D)Evil schrieb:
Ehm dumme Empfehlung ...
Warum so unfreundlich?

// return 0; // unnötig ... wird hier nicht gebraucht.will ich auch nicht so stehen lasse, schöner ist mitreturn 0;. Gibt sonst ja auch ne Compiler-Warnung, wollen wir ja gar nicht unter den Tisch kehren
:p
-
Naja, der Standard schreibt kein return in der main Funktion vor. Das sollte ein konformer Compiler eigentlich ohne Warnung schlucken.

-
Genau das. Wenn dein Compiler da ne Warnung ausgibt => Wechseln!

-
Ok nach stundenlangen grübeln und büffeln sieht das ganze jetzt so aus:
#include <iostream.h> int main() { cout << "Hello World!\n"; system ("PAUSE"); return 0; }Funktioniert immernoch nicht. Die anderen möglichkeiten hab ich aber auch schon vergeblich probiert.
Der Quelltext stammt von einem Buch. Ich will mich weitestgehend daran halten und wollte eigendlich nicht zuviel daran rumfummeln.....
vielen dank für die vielen antworten
-
(D)Evil schrieb:
#include <iostream> // Guck mal in den Standard ... <iostream.h> ist raus genommenund
std::cout << "Hello world!\n";
-
Okay, und jetzt nochmal die korrekte Zusammenfassung:
#include <iostream> int main() { std::cout << "Hello World!\n"; std::cin.get (); }
-
Wenn man jetzt noch den Ausgabestrom einen "Tritt in den Hintern" verpasst...
#include <iostream> int main() { std::cout << "Hello World!\n" << std::flush; std::cin.get (); }und jetzt mal lese- und anfängerfreundlicher:
#include <iostream> using namespace std; int main() { cout << "Hello World!" << endl; cin.get(); }Darüber, ob ein return 0 sinnvoll ist oder nicht, kann man müsig und stetig streiten. Der Standard mag das zwar nicht vorschreiben, aber alleine um (gerade als Anfäger) ein wenig feste Struktur in sein Programm zu bekommen, sollte eine Funktion, die laut ihrer Signatur einen Wert zurückliefern will, dieses auch tun sollte.
EDIT: Wie kann man über ein "Hallo-Welt" stundenlang grübeln...?
Grüße...
Heiko
-
Es tut mir leid euch zu stören aber es klappt immer noch nicht.
Ich habe jeden lösungsvorschlag ausprobiert.
Es wurde zwar nirgends ein fehler angezeigt, doch die konsole verschwindet bei mir immernoch nach ner milisekunde!muss man vielleicht etwas in dem dev cpp builder konfigurieren, damit diese konsole länger da bleibt????????????
-
Probier es doch mal mit der wait()-Funktion aus der FAQ:
void wait () { std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); }Wenn es mit ignore() nicht klappt versuch mal:
std::cin.sync();Greetz
-
Spyder schrieb:
muss man vielleicht etwas in dem dev cpp builder konfigurieren, damit diese konsole länger da bleibt????????????
Starte die EXE aus einer Konsole heraus.
-
Ganz übersehen die Frage.
Du kannst natürlich auch einen Breakpoint an das Ende der main()-Funktion setzen. Oder du startest die Anwendung mit der Option "Starten ohne Debuggen", wenn es die Option in Dev-C++ auch gibt (Dev-C++ ist schon ne Weile her, bevorzuge eher VC++).Greetz
-
hi
wie sag ich dev cpp das er das programm ohne debugger starten soll?
ist das nicht gefährlich?ich hab auch die express edition von visual c++ hier rumfliegen, allerdings weiß ich nicht wie man da kompiliert und erzeugt/programm startet. wie macht man das bei vc++?
-
ok scheinbar funktioniert jetzt alles.
da war eine cd im buch mit vc++ version 6.
ich dachte ich hätte die cd verloren doch jetzt hab ich sie wieder und hab auch gleich das programm drauf gemacht. jetzt klappt alles.ich hoffe ich habe nicht für alzu viel verwirrung gesorgt.
-
Ich kann dir den VC 6 leider nicht (mehr) empfehlen, da dieser veraltet ist und es sogar eine neuere Version kostenlos im Internet gibt!
Schau mal hier:
http://www.microsoft.com/germany/msdn/vstudio/products/express/visualc/default.mspxDenn du wirst auf dauer mit dem VC 6 nicht glücklich werden. Glaub mir

Viele Grüße,
Patrick
-
schöner ist mit return 0
Schöner ist mit
return EXIT_SUCCESS;.
-
Tyrdal schrieb:
Schöner ist mit
return EXIT_SUCCESS;.
und was ist dieses ominoese EXIT_SUCCESS?
das muesstest du dir dann vorher noch in irgendeiner Art und Weise deifinieren (und dann bitte NICHT als Makro).
Allgemein: Wenn du Konsolenprogramme auch von der Konsole aus ausfuehrst, brauchst du keinerlei Pausen oder Tastaturabfragen einzubauen. (Unter Windows startet man die Konsole z.B. ueber Start->Ausfuehren->"cmd")