Microsoft Visual C++ Problem

Pasko70

Newbie
Registriert
Apr. 2010
Beiträge
5
Also ich hab das Problem bei dem Hello-World-Programm,
sich das Fenster immer sofort schließt, ohne die abfrage einer beliebigen Taste.
Ich benutze zum starten debug, mich würde auch mal interessieren wie ich dies nun
als anwendung speichern kann?
Hier der Code:

// Test.cpp
//

#include "stdafx.h"
#include <iostream>
using namespace std;

int main(void)
{
cout << "Hello, world!" << endl;
return 0;

cin.ignore();
cin.get();
//hab ich dazugeügt weil ich dachte es hilft//
}
 
Vermutlich indem du irgendwie dafür sorgst, dass der Prozess durch benutzerinteraktion beendet wird.
getline() oder so?
 
#include "stdafx.h"
#include <iostream>
using namespace std;

int main(void)
{
cout << "Hello, world!" << endl;


cin.ignore();
cin.get(); //hab ich dazugeügt weil ich dachte es hilft//

return 0; //return beendet die main funktion, deshalb ganz zum schluss
//jeglicher code ab hier, wird nicht ausgeführt
}


------------------
der compiler müsste im bin/Release Ordner oder so die exe erstellt haben
 
danke wieder was dazu gelernt,
aber leider hat das mein Problem nicht behoben,
ich denke dass dies etwas mit dem debug mode oder so zu tun hat?
naja ich hab keine ahnung hab ja gerade erst angefangen wie man an
"Hallo, World!" sieht ;). Bei einer älteren Version gibt es noch
die Option "starten ohne Debug" dort funktioniert es einwandfrei (auch ohne :

cin.ignore();
cin.get();.

Wäre aber auch froh wenn ich nich die alte 2005 Version benutzen
müsste. Also für weitere Vorschläge bin ich offen.
Danke nochmal für die bisherigen antworten
 
versuch mal

string input_text;
cin.getline(input_text,1);

wobei ich gerade nicht genau weiß wie die getline funktion aussieht.

btw. was meintest du mit "als anwendung speichern"?
vllt als "Release"-Version compilen?
 
also danke erstmal wieder für die vielen Antworten.
Dies:
cin.ignore();
cin.get();
steht bei mir vor dem return 0;
funktioniert trotzdem nicht.
http://opengroup.org/onlinepubs/9699...s/getline.html hier check ich garnichts was ist das für ein riesiger ausdruck ;)
ich bin noch ganz am anfang leute ^^
in meinem buch steht das der "drücke eine beliebeige ..." eigentlich automatisch ausgespuckt wird.
Das einzige wie ich bisher geschaft hab das Fenster mal anzuhalten ist wenn
ich am anfang einen "char" definiere und am ende auf cin >> char.
dann bleibt das programm stehen am ende. Aber warum eigentlich was hab ich damit eigentlich genau gemacht?
also wenn am Anfang steht,
#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
char a;

cout << "Hallo, World!" << endl;
cout << "Ende?" <<endl; cin >> a

return 0;

}
egal was ich nun eingebe und dann enter drücke wird das Programm beendet.


Ps: system("PAUSE"); hat auch wunderbar funktioniert!
 
Durch das "cin >> a" wird die eingabe in die eingabe in die Variable a geschrieben. Bei dir wird das Programm sofort danach beendet, aus dem Grund sieht man hier keine Ausgabe. Man kann den Inhalt von a auch wieder ausgeben wenn man es mit "cout >> a" ausgibt.

Bitte beachte: a sollte hierzu aber ein array sein oder der speicher sollte dynamisch zur Laufzeit angefordert werden und nicht nur aus einem einigen char bestehen, denn dieser kann nur ein einziges Zeichen speicher. Ein guter Debugger gibt beim Überschreiten der Grenze einer Variablen einen Fehler aus wenn im debug modus kompikliert wurde.
 
ok danke erstmal dafür,
ich werde jetzt einfach mal ein bisschen üben und lesen, damit ich nicht die ganze Zeit eure Zeit verschwende.
das mit "char a" hab ich soweit verstanden. Nur das mit dem array (also wie ich nun ein solches array erstelle)
ist mir noch nicht klar.

wenn ich nochmal fragen hab, werde ich sie stellen.
PS: nettes Forum
 
Ein Array erstellst du über die eckigen Klammern hinter dem Variabelnamen.
Code:
char a[100];//Erstellt ein Array mit dem Namen a und dem den Zellen a[0] bis a[99]
Das geht mit jedem Variabeltyp. Die Zahl in den eckigen Klammern muss allerdings statisch d.h. zur Compilerzeit errechenbar sein.
 
Zurück
Oben