Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

C++ console help

  1. Jan 19, 2008 #1
    #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
     
  2. jcsd
  3. Jan 19, 2008 #2

    ranger

    User Avatar
    Gold Member

    What IDE are you using?

    I think adding a line like system("PAUSE"); should help you out.
     
  4. Jan 19, 2008 #3
    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.
     
  5. Jan 19, 2008 #4
    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()
    {
    // Your program here

    getch();
    }

    #include <iostream>

    int main()
    {
    // Your program here

    std::cin.get();
    }

    #include <iostream.h>
    void main()
    { ...... /* your program here */
    cin.get();
    }
     
  6. Jan 19, 2008 #5
    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.
     
  7. Jan 19, 2008 #6

    daniel_i_l

    User Avatar
    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.
     
  8. Jan 21, 2008 #7
    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 (Text):

    Microsoft Windows [Version 6.0.6000]
    Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

    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 (Text):

    #include <conio.h>

    int main()
    {
      // Your program here

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

    Code (Text):

    #include <iostream>

    int main()
    {
      // Your program here

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

    Code (Text):

    #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.
     
  9. Jan 21, 2008 #8
    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
     
  10. Jan 21, 2008 #9

    ranger

    User Avatar
    Gold Member

    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.
     
  11. Jan 22, 2008 #10
    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 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
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: C++ console help
  1. Console program (Replies: 1)

Loading...