C++ Visual C++ Express alle Programme schliessen.

10/12/2013 20:17 SpieleHacksInfo#1
Hey ich habe ein merkwürdiges Problem. Alle Programme, die ich als Konsolenanwendung schreibe schliessen. Habe den Pc letztens zurück gesetzt.

Programm:
Code:
#include <iostream>                                    

int main(){                                            
    std::cout << "Hallo, du schöne Welt!" << std::endl; 

    return 0;                                           
}
Konsole:
Code:
"est.exe": "C:\Users\SHI\Documents\Visual Studio 2010\Projects\est\Release\est.exe" geladen, Symbole wurden geladen.
"est.exe": "C:\Windows\SysWOW64\ntdll.dll" geladen, Symbole geladen (ohne Quellinformationen).
"est.exe": "C:\Windows\SysWOW64\kernel32.dll" geladen, Symbole geladen (ohne Quellinformationen).
"est.exe": "C:\Windows\SysWOW64\KernelBase.dll" geladen, Symbole geladen (ohne Quellinformationen).
"est.exe": "C:\Windows\SysWOW64\msvcp100.dll" geladen, Symbole geladen (ohne Quellinformationen).
"est.exe": "C:\Windows\SysWOW64\msvcr100.dll" geladen, Symbole geladen (ohne Quellinformationen).
Das Programm "[7160] est.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
getchar und systempause helfen nicht!
10/12/2013 20:33 Dr. Coxxy#2
das System("pause") bzw. das getchar müssen vor das return 0;
10/12/2013 22:12 SpieleHacksInfo#3
Hatte ich vorhin versucht. Jetzt geht es auf einmal O.o . Ok thx.
10/14/2013 15:28 Da_Killa#4
Code:
#include <iostream>

using namespace std;

int main()
{

   cout << "Hallo Welt" << endl;

   getchar();
   return 0;

}
Durch das
Code:
 using namespace std;
sparst du dir immer das std:: ;)
10/14/2013 15:40 MrSm!th#5
Quote:
Originally Posted by Da_Killa View Post
Code:
#include <iostream>

using namespace std;

int main()
{

   cout << "Hallo Welt" << endl;

   getchar();
   return 0;

}
Durch das
Code:
 using namespace std;
sparst du dir immer das std:: ;)
Verbreite bitte woanders schlechte Tipps.
10/14/2013 16:38 Da_Killa#6
Würde der allwissende Herr vieleicht auch erklären warum das ein schlechter Tipp ist ?
Ich hab das immer so "gelernt", wenn ich da was falsch verstanden habe tut es mir leid dies gepostet zu haben.
Eine Erklärung wäre nett und hilfreich :)

// gelernt in Anführungszeichen weil ich nie richtig Programmieren gelernt habe sondern nur ein paar basics im Internet aufgegriffen habe und helfen wollte :(

mfg Da_Killa
10/14/2013 16:44 TIMΣ™#7
Quote:
Originally Posted by Da_Killa View Post
Code:
#include <iostream>

using namespace std;

int main()
{

   cout << "Hallo Welt" << endl;

   getchar();
   return 0;

}
Durch das
Code:
 using namespace std;
sparst du dir immer das std:: ;)
Naja wenn du schon das std:: nicht rausschreiben willst, dann aber bitte anders.

Code:
using std::cout;
...
Musst nur jenachdem sagen für welche Funktion das std nicht geschrieben werden muss. In deinem Beispiel ist es eben std::cout.
10/14/2013 16:57 Da_Killa#8
Quote:
Originally Posted by TIMΣ™ View Post
Naja wenn du schon das std:: nicht rausschreiben willst, dann aber bitte anders.

Code:
using std::cout;
...
Musst nur jenachdem sagen für welche Funktion das std nicht geschrieben werden muss. In deinem Beispiel ist es eben std::cout.
Danke war sehr hilfreich :)

d.h. also wenn ich using namespace std; schreibe dann setzt er das automatisch vor jede funktion, auch da wo es garnicht hingehört ?
10/14/2013 17:49 MrSm!th#9
[Only registered and activated users can see links. Click Here To Register...]

Deshalb macht man das nicht.
10/14/2013 18:13 Tasiro#10
Quote:
Originally Posted by Da_Killa View Post
d.h. also wenn ich using namespace std; schreibe dann setzt er das automatisch vor jede funktion, auch da wo es garnicht hingehört ?
Nein, das stimmt auch nicht wirklich.
Ich habe mal ein kleines Beispiel zusammengestellt:
Es gibt dann noch einige weitere Möglichkeiten (z. B. das "Verdecken" von Namen), aber das würde hier zu weit führen.
10/14/2013 20:43 TIMΣ™#11
Quote:
Originally Posted by Da_Killa View Post
Danke war sehr hilfreich :)

d.h. also wenn ich using namespace std; schreibe dann setzt er das automatisch vor jede funktion, auch da wo es garnicht hingehört ?
Ne, eigentlich nur dahin, wo es auch hingehört.

Bsp:

Code:
[I](std::)[/I][B]cout;[/B]
[I](std::)[/I][B]endl;[/B]
[I](std::)[/I][B]cin;[/B]
[I](std::)[/I][B]string;[/B]
...
Da wird es dann automatisch erkannt, wenn du das globale namespace verwendest.
10/14/2013 21:32 Tasiro#12
Habe ich doch tatsächlich vergessen, die Wirkung zu beschreiben...

Eine using-Direktive führt alle Bezeichner eines Namensraumes in den aktuellen Gültigkeitsbereich ein. Dadurch kann es zu Konflikten und unerwarteten Ergebnissen kommen, siehe mein Beispiel oben, vor allem, wenn unbekannt ist, was alles in dem Namensraum ist.
Eine using-Deklaration führt genau einen Bezeichner in den aktuellen Gültigkeitsbereich ein. Prinzipiell besteht das gleiche Problem, nur weiß man ja, welche Bezeichner so eingeführt wurden.