Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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,B);

cout << "\nZurück in main().\n";

cout << "c wurde gesetzt auf " << c;

cout << "\nBeenden...\n\n";

return 0;

}

Geschrieben

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,B);
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.

Geschrieben

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

Geschrieben

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.

Geschrieben
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;

Geschrieben

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,B);

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

Geschrieben

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

Geschrieben

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.

Geschrieben

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?

Geschrieben

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)

Geschrieben
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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...