# C++ console help

• C/++/#
#include <iostream>
using namespace std;

int main ()
{
cout << "Hello World!";
return 0;
}

this would produce an output in the console and then closes it automatically its so fast I cant even see it, I know you can let the console display the output show and close only when you press enter key, how do you do it? using this example code. tnks

Related Programming and Computer Science News on Phys.org
ranger
Gold Member
What IDE are you using?

Almost all IDEs have some way of displaying the output screen.
Or you could simply get a character from the keyboard as input before terminating the program. I like using the getch() function (conio.h). Time delay functions are also useful.

I searched these answers on the net hope these are correct. basically you just add these to stop the output from exiting automatically, hope its correct

#include <conio.h>

int main()
{

getch();
}

#include <iostream>

int main()
{

std::cin.get();
}

#include <iostream.h>
void main()
{ ...... /* your program here */
cin.get();
}

There are other ways of doing it, but these should do quite well. Still, you could try to find out how to display the output screen in your IDE.

daniel_i_l
Gold Member
Well, since you're not asking for any input the program is over as soon as it prints hello world. So if you want it to wait for you to press a key you need to tell it to get input from the user.

What IDE are you using?

Dear god no! Please do not do this. This is a terrible, awful hack. This has windows execute the pause program after your program is completed. Don't do this. Here's what I recommend, Start->Run "cmd"; Now change directories to where the compiled .exe is located. Type the name of the program, and watch the magic happen.

Code:
Microsoft Windows [Version 6.0.6000]

C:\Users\Sam>cd Documents

C:\Users\Sam\Documents>cd "Visual Studio 2005"

C:\Users\Sam\Documents\Visual Studio 2005>cd projects

C:\Users\Sam\Documents\Visual Studio 2005\Projects>cd Test

C:\Users\Sam\Documents\Visual Studio 2005\Projects\Test>Test.exe
Pass!

C:\Users\Sam\Documents\Visual Studio 2005\Projects\Test>

Code:
#include <conio.h>

int main()
{

[B]  getch();[/B]
}
Only if you're using Borland's compiler. Conio.h isn't a standard library.

Code:
#include <iostream>

int main()
{

[B]  std::cin.get();[/B]
}
This is the most standard way to accomplish what you want.

Code:
#include <iostream.h>
void main()
{ ...... /* your program here */
[B]cin.get();[/B]
}
If you're going to go this route, the include should be iostream (Without the .h). Furthermore, you'll need to add std:: before cin, or using std::cin at the beginning of the program. Look up the scope operator for more information.

I observed that some codes have the .h on the #include, the .h is suppose to be the library or header file or something, but why is that it works without the .h

ranger
Gold Member
Dear god no! Please do not do this. This is a terrible, awful hack. This has windows execute the pause program after your program is completed. Don't do this. Here's what I recommend, Start->Run "cmd"; Now change directories to where the compiled .exe is located. Type the name of the program, and watch the magic happen.
There is nothing wrong with using the pause "program", as you described. I used exactly this when I was using Dev C++. In fact, its recommended by the Dev C++ FAQ. The problem lies not with running pause, but in using system() in the first place. This is why I asked what IDE hes using. As different IDEs have different ways of handling program termination. But obviously something like getch() is a better option.

I observed that some codes have the .h on the #include, the .h is suppose to be the library or header file or something, but why is that it works without the .h
The files that you may omit the .h from, are the standard files included in your implementation of c++. It is pretty compiler specific, but you can count on using all the STL headers without the .h.

There is nothing wrong with using the pause "program", as you described. I used exactly this when I was using Dev C++. In fact, its recommended by the Dev C++ FAQ. The problem lies not with running pause, but in using system() in the first place. This is why I asked what IDE hes using. As different IDEs have different ways of handling program termination. But obviously something like getch() is a better option.
There is nothing wrong with it in this instance per se, but why teach poor programming practices? System is a very poor implementation. Let us take a hypothetical (albeit far fetched) situation where the program "pause" has been replaced by a virus of the same name. Instead of your program pausing so you can see the results as you expected, you have no executed unintended, malicious code.

http://cpp.codenewbie.com/articles/cpp/1437/systemPAUSE-Page_1.html [Broken]

Last edited by a moderator: