SEO-Software von Suchmaschinenoptimierung.de

C++ | Programm wird dauernd geschlossen!?

(hier klicken, um zum Original Thread zu gelangen)
MasterMax
Hi @ all,
ich habe seit gestern das Buch "Die C++ Programmiersprache" vom Erfinder von C++, Bjarne Stroustrup, jedoch bin ich entweder einfach zu blöd oder irgendwas läuft auf meinem PC schief und hat nichts mit C++ zu tun.
Dies ist mein Problem:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
#include <iostream>

using namespace std;

int main()
{
    int vorname;

    cout << "Geben Sie bitte Ihren Vornamen an!" << endl;
    cin >> vorname;

    cout << "Ich denke doch ich darf Sie dutzen, " << vorname << ", oder?" << endl;
    cin.get();
}

Der Fehler ist jetzt, dass ich den Namen zwar eingeben kann, jedoch ist der Moment in dem "Ich denke doch..." angezeigt wird nur der Bruchteil einer Sekunde und das Programm schließt sich automatisch - meist ist absolut garnichts von der Antwort zu lesen.
Ich kam schon auf die Idee, dass es vielleicht an meinem Compiler liegt, ich benutze den Dev-C++ Compiler der Version 4.9.9.2.

Ich hoffe auf Eure Antworten, finde im Internet auch immer nur solche Codes, die bei mir compiled aber auch immer nur den selben Schrott ergeben unglücklich

THX, schonmal im Voraus!

lg Max
moonsword
öffne das programm doch mal in der Konsole *g* und sag an, was rauskommt Augenzwinkern
MasterMax
So das wars und wiedermal geschah ein Wunder und ganz zufällig traf ich auf ein C++ Genie großes Grinsen

Lösung:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

int main()
{
    string vorname;

    cout << "Geben Sie bitte Ihren Vornamen an!" << endl;
    cin >> vorname;

    cout << "Ich denke doch ich darf Sie dutzen, " << vorname << ", oder?" << endl;
    getch();
}


lg Max
Folke
Hi,

das ist aber keine schöne Lösung - getch() gehört weder zu C, noch zu C++. Nur ein paar Windows-Compiler beherrschen das.
Eine bessere Lösung ist folgende:
code:
1:
2:
3:
4:
5:
cin.clear();
cin.ignore(cin.rdbuf()->in_avail());
cin.get();
craiten
warum nicht einfach mit return 0?

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
<?php #include <iostream>

using namespace std;

int main()
{
    int vorname;

    cout << "Geben Sie bitte Ihren Vornamen an!" << endl;
    cin >> vorname;

    cout << "Ich denke doch ich darf Sie dutzen, " << vorname << ", oder?" << endl;
    return 0// <-- hier 
?>
Hirnhamster
das problem besteh imho auch nur in der windows console Augenzwinkern
craiten
ja, ich habe nen jahr schon c/c++ nur mit der konsole prograammiert, return 0; sollte gehen.
geKcore
mittels

php:
1:
<?php system("Pause"); ?>


funktionierts auch das gehoert an schluss des programms.
Und wird eigentlich von allen compilern richtig interpretiert ^^

greetz
Dayxtry
system("pause"); sowie alle anderen system() calls sind schlecht, unsafe und non-portable.
Also ich glaub mit system("Pause"); wirst unter Linux auch n Problem haben.

code:
1:
return 0;


ist zu empfehlen^^

und das hier sollte auch gehen:

code:
1:
2:
3:
4:
5:
cout << "Press Enter to continue...." << endl;
cin.ignore(INT_MAX, '\n');
cin.get();


Die Angabe von "using namespace std;" ist schlechter Programmierstiel. Durch diese Anwendung kann man im Programm folgende Wörter für keine variables, structures, namespaces, functions....verwenden:
string, list, vector, set, map, find, min, max ....

Anstelle der Benutzung von "using namespace std;" verwende folgendes:
std::cout
std::endl
usw...
geKcore
php:
1:
<?php using namespace std?>


schlechter programmierstil ? wer sagt den sowas ... die namen sind ja sowieso reserveriert fuer C++ und koennen ohnehin nicht als variablen namen verwendet werden.

und bei einem code von mehreren dinA 4 seiten oder noch mehr will ich dich ma sehen wie du dann staendig std:: davor setzt das ist schlicht und ergreifend unnuetz und unkonvortabel Augenzwinkern
Möglich zwar aber beim standard namespace kaum angewandt ( zumindest nicht bei mir auf der Uni und von meinen Profs ... aber auch nich bei mir im Betrieb )

php:
1:
<?php return 0?>

gehoert sowieso in jede main funktion das ist Standard aber das haellt noch immer das KonsolenFenster nicht offen ^^

zudem war ja hier auch nicht die rede das des teil unter linux laufen soll sondern unter windows.
Zumal man ja eh keine Programme einfach so von Plattform zu Plattform transferieren kann ... diese muessen eh jedesmal drauf angepasst werden.

daher ist das allemal eine gute in stilvolle loesung.

greetz
(hier klicken, um zum Original Thread zu gelangen)



Tipp: Ranking-Konzept.de - Das SEO-Forum (Forum rund um die Suchmaschinenoptimierung) der artaxo AG.
Das große Versicherungs ABC von Versicherung.de - mit allen Aspekten der Computerversicherungen!
Fan-Foren.de, die große Community mit Musikforum ist ab sofort online.