~Error~ Geschrieben 30. April 2006 Geschrieben 30. April 2006 Nachdem ich nun einen geeigneten Compiler gefunden habe, habe ich das Problem, dass er nach dem compilen die exe erstellt, aber sobald ich diese ausführen will öffnet sich kurz das DOSFenster und schließt sich wieder. Ich benutzte den Microsoft Visual C++ 2005 Express Compiler. mein kleines Test Programm: #include <iostream.h> int Add (int x, int y) { cout << "In Add(), erhalten " << x << " und " << y << "\n"; return (x+y); } int main() { cout << "Ich bin in main()!\n"; int a, b, c; cout << "Geben Sie zwei Zahlen ein: "; cin >> a; cin >> b; cout << "\nAufruf von Add()\n"; c=add(a,; cout << "\nZurück in main().\n"; cout << "c wurde gesetzt auf " << c; cout << "\nBeenden...\n\n"; return 0; } Zitieren
Bubble Geschrieben 30. April 2006 Geschrieben 30. April 2006 Erstaunlich, dass es überhaupt compiliert (genaugenommen glaube ich nicht, dass das Programm, so wie es hier steht, compiliert wurde)... #include <iostream.h> Es muss #include <iostream> lauten. Du musst entweder noch ein using namespace std; hinzufügen, oder alle Objekte/Klassennamen aus dem Namesapce std mit vorangestelltem std:: ansprechen. cout << "In Add(), erhalten " << x << " und " << y << "\n"; Anstelle von "\n" solltest Du std::endl verwenden. c=add(a,; Es muss c=Add(a,; [/code] lauten. Nach den Änderungen funktioniert es. PS: Wenn Du nicht willst, dass sich Dein Programm-Fenster nach dem Beenden des Programms schließt, dann starte Dein Programm vom Command Prompt (cmd.exe) aus. Zitieren
~Error~ Geschrieben 30. April 2006 Autor Geschrieben 30. April 2006 thx für die schnelle antwort ich habe mir das buch jetzt lerne ich c++ gekauft und da wurden diese prog genauso aufgeschrieben mit iostream.h und so das mit dem add kann sein das ich das ausversehen lein geschrieben hab und gleich noch eine frage wie du das mit dem std::end meinst?könntest du mir das vllt erklären? oder das prog mal so umschreiben wie du es machen würdest und ein paar kommentare dahinterschreiben? also //... das wäre echt nett dnen ich bin noch voll am anfang und würde gern mal vorwärts kommen doch ohne compilen wird das wohl nix^^ so long Zitieren
Guybrush Threepwood Geschrieben 30. April 2006 Geschrieben 30. April 2006 Das die Konsole wieder zugeht ist normal weil dein Programm ja fertig mit seiner Ausführung ist. Du kannst entweder wie Bubble gesagt hat das Programm über die Dos Box starten oder du baust noch einen Befehl ans Ende das auf eine Eingabe gewartet wird. z.b. getch() oder getchar() oder cin. Der unterschied zwischen iostream und iostream.h ist der das iostream.h veraltet ist. Deshalb empfiehlt es sich iostream einzubinden. Alles Funktionen in iostream befinden sich aber in einem so genannten Namensraum. D.h. du musst diesen vor dem Funktionsnamen angeben. Der Namensraum in iostream heißt std, deshalb musst du die Funktion cout z.B. so aufrufen: std::cout [/PHP] Stattdessen kannst du aber auch nach dem #include <iostream> auch einfach folgendes schreiben um den Namensraum standardmäßig zu benutzen: [PHP] using namepsace std; Dadruch kannst du dann wieder einfach cout schreiben ohne den Namensraum angeben zu müssen. Zitieren
Bubble Geschrieben 30. April 2006 Geschrieben 30. April 2006 thx für die schnelle antwort ich habe mir das buch jetzt lerne ich c++ gekauft und da wurden diese prog genauso aufgeschrieben mit iostream.h und so Wie alt ist das Buch? Wenn es zu alt ist und nicht den aktuellen C++ Standard behandelt, dann solltest Du Dir lieber ein aktuelleres Buch (oder eine aktualisierte Ausgabe) zulegen. und gleich noch eine frage wie du das mit dem std::end meinst? Nicht "end" sondern "endl" aus dem Namensraum std. Dadurch bleibt Dein Code portabel, da Du ihn nicht an evtl. unterschiedliche Gegebenheiten anpassen musst. Du schreibst also beispielsweise anstelle von std::cout << "Gib zwei Zahlen ein: \n"; lieber std::cout << "Gib zwei Zahlen ein: " << std::endl; Zitieren
~Error~ Geschrieben 30. April 2006 Autor Geschrieben 30. April 2006 so hab jetzt mal ein projekt geöffnet und der hat mir gleich ne vorgegebenen headerdatei und quelldatei erstellt (ich denke die sind für den compilier vorgang) ich habe docrt meinen umgeänderten text reingeschrieben und jetzt sagt er mir auch beim kompilieren einen fehler an das neue prog: // test.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { return 0; } #include <iostream> int Add (int x, int y) { std::cout << "In Add(), erhalten " << x << " und " << y << "" << std::endl; return (x+y); } int main() { std::cout << "Ich bin in main()!" << std::endl; int a, b, c; std::cout << "Geben Sie zwei Zahlen ein: " << std::endl; cin >> a; cin >> b; std::cout << "\nAufruf von Add()" << std::endl; c=Add(a,; std::cout << "\nZurück in main()." << std::endl; std::cout << "c wurde gesetzt auf " << c; std::cout << "\nBeenden...\n\n"; return 0; } kann es sein das das \n am anfang auch noch weg muss? und hier der fehler: ------ Erstellen gestartet: Projekt: test, Konfiguration: Debug Win32 ------ Kompilieren... stdafx.cpp Kompilieren... test.cpp f:\dokumente und einstellungen\marcel\eigene dateien\visual studio 2005\projects\test\test\test.cpp(24) : error C2065: 'cin': nichtdeklarierter Bezeichner Das Buildprotokoll wurde unter "file://f:\Dokumente und Einstellungen\Marcel\Eigene Dateien\Visual Studio 2005\Projects\test\test\Debug\BuildLog.htm" gespeichert. test - 1 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== danke für euer verständnis:D Zitieren
carstenj Geschrieben 30. April 2006 Geschrieben 30. April 2006 Hi, natürlich muss das du vor cin auch std:: setzen, sonst wird das nix. Für den Anfang wäre es einfacher gewesen, using namespace std; zu benutzen. Zitieren
~Error~ Geschrieben 30. April 2006 Autor Geschrieben 30. April 2006 cool dnake jetzt läuft es aber sobald ich die zahlen eingegeben habe und auf enter drücke rasselt er alles sofort runter und schließt die konsole habe auch den getch befehl oder getchar benutzt aber es passiert trotzdem genau das gleiche Zitieren
Bubble Geschrieben 30. April 2006 Geschrieben 30. April 2006 Den Abschnitt "int _tmain..." kannst Du bis vor Dein "#include <iostream>" löschen, Du brauchst nur eine main-Funktion. "cin" ist im gleiche Namensraum wie "cout", darum gehört auch vor "cin" ein "std::". Starte das Programm, wie bereits gesagt, von der Eingabeaufforderung aus, um alle Ausgaben auch nach dem Programmende noch sehen zu können. Alternativ kannst Du das Programm auch aus Visual C++ heraus starten. Zitieren
~Error~ Geschrieben 30. April 2006 Autor Geschrieben 30. April 2006 so ich hab mir da jetzt mal durch die suche gekämpft aber nicht zu der konsole gefunden wie ich die datei von dort aus öffnen könnte könnt ihr mit evtl die befehle dafür hier reinschreiben? Zitieren
carstenj Geschrieben 1. Mai 2006 Geschrieben 1. Mai 2006 Hi, wie wäre es denn, wenn du einfach mal dein Buch liest bzw. das ein oder andere Tutorial durcharbeiten würdest? http://tutorial.schornboeck.net/inhalt.htm http://www.volkard.de/Cpp/Tutorial/Einleitung/index.html Zitieren
~Error~ Geschrieben 1. Mai 2006 Autor Geschrieben 1. Mai 2006 danke für die links in dem Buch steht das nicht zumindest nicht da wo ich bin und ich habe schon nach einigen Tutorial im inet gesucht auch einiges gefunden, aber dort wurde nie erklärt wie man ein prog über die cmd öffnet danke für eure hilfe und euer verständnis so long P.S.: (von mir aus closed) Zitieren
Bubble Geschrieben 1. Mai 2006 Geschrieben 1. Mai 2006 aber dort wurde nie erklärt wie man ein prog über die cmd öffnet Indem Du die Eingabeaufforderung (cmd.exe, DOS-Box, Shell, Command Promt (oder unter welchen Namen auch immer Du es kennst)) öffnest bzw. startest, mit "cd" in das Verzeichnis wechselst, in dem die vom Compiler erzeuge EXE-Datei liegt und Dein Programm durch Eingabe des Namens der EXE-Datei (danach Return drücken) startest. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.