Konsole schließt sich sofort

Ha ha, ja der Thread ist uralt. Na, und ich habe gerade kürzlich begonnen, mir C beizubringen (was mit PHP-Kenntnissen nicht all zu schwer fällt), aber dieses Anfängerproblem mit der sich selbst schließenden Konsole hatte ich eben auch.

Ich habe mir einen Wolf gesucht und eigentlich immer nur ziemlich alte Forenbeiträge gefunden, deren Lösungsansätze aber für mein Miniprogramm nicht so recht geeignet waren.

Wie ich das mit den Leerzeichen lösen soll, die bei scanf einfach nicht eingelesen werden, weiß ich leider noch nicht. Echt blöd. Mit Basic oder Pascal war das mit den Strings irgendwie alles einfacher.
 
Fürs scanf("%s",...); kannst du die Funktion gets bzw. fgets nehmen
Statt
scanf("%s",txt);
gets(txt);
Das nimmt auch die Leerzeichen mit, hat aber dafür keine Möglichkeit zur Längenangabe.
Wenn der Benutzer mehr als 80 Zeichen eingibt, gibts ein Problem.

Deshalb fgets:
fgets(txt,80,stdin);

Gruß
 
es gibte eine sehr einfache methode:
Code:
#include<iostream>
#include<windows.h>

using namespace std;

int main()
{
cout<<"Hello World"<<endl;

system("PAUSE");
}

MFG
 
...wobei diese nicht gerade zu empfehlen ist, da sie
1) ein externes Programm benötigt
2) Immer einen Text ausgibt, auch wenn man ihn nicht will
3) Extrem langsam ist
 
dann musst du aber schreiben:
Code:
cin.ignor();
cin.get();

sonst schliesst sie sich wieder sofort
 
Folgendes Programm funktioniert einwandfrei:
C++:
#include <iostream>

using namespace std;

int main()
{
    cin.get();
    return 0;
}
Es schließt sich sich, sobald ich ENTER drücke.
Mit cin.ignore() "ignoriert" man doch nur einfach Zeichen, die nicht im InputStream abgespeichert werden sollen. Siehe http://www.c-plusplus.de/forum/p1326764#1326764
 
Hallo auch - ich bin selber Programmieranfänger und hatte das selbe Problem...

Ich lerne in Visual Studio 2010 Express per Buch und musste 2 Schritte machen,
um dieses Problem zu umgehen .

1. Rechtsklick auf Projekt ->Konfigurationseigenschaften -> Linker -> System

dort bei SubSystem per Mausklick auf Konsole /(/SUBSYSTEM:CONSOLE) stellen

2. Wenn du dein Programm ausführst, nicht auf den Debug-Pfeil klicken, sondern unter
dem Reiter Debuggen "Starten ohne Debugging" wählen.
das wars schon - ich hoffe es hilft :D
 
Hi und Willkommen bei tutorials.de,

wenn du beim Projekt-erstellen Win32-Konsolenanwendung auswählst,
geht das mit dem Subsystem normalerweise von selbst.
Man muss nur das richtige Projekt aussuchen.
 
Du kannst auch das hier verwenden:

Code:
int main
{
      system("PAUSE");
      return 0;
}

Als Ausgabe beim Konsolenfenster siehst du dann folgendes: "Drücken Sie eine beliebige Taste....."
 

Neue Beiträge

Zurück