views:

146

answers:

5

Possible Duplicate:
How to stop C++ console application from exiting immediately?

So im learning c++ and i was given this example and i wanted to run it. But i cannot get it to stay up, unless i change it. How do i get Microsoft visual 2010 to keep up the screen when it gets to the end of the program after I release it?

#include<iostream>
using namespace std;

int area(int length, int width);        /* function declaration */

/* MAIN PROGRAM: */
int main()
{
    int this_length, this_width;      

    cout << "Enter the length: ";             /* <--- line 9 */
    cin >> this_length;
    cout << "Enter the width: ";
    cin >> this_width;
    cout << "\n";                             /* <--- line 13 */

    cout << "The area of a " << this_length << "x" << this_width;
    cout << " rectangle is " << area(this_length, this_width);

    return 0;
}
/* END OF MAIN PROGRAM */

/* FUNCTION TO CALCULATE AREA: */
int area(int length, int width)   /* start of function definition */
{
    int number;

    number = length * width;

    return number;
}                                 /* end of function definition */
/* END OF FUNCTION */
A: 

Try adding system("PAUSE"); to the end of main before the return statement.

This executes the PAUSE system command which waits for a key to be pressed.

George Edison
That'll work as long as pause is in the path - but it'll make the program unnecessarily dependent on Windows.
redtuna
yeah but then i wont get my answer to stick up.. will I?
Dakota
will this really work? pause isn't an executable is it, it's part of the command shell? `system("cmd.exe /c pause");` might be more the ticket, but it's getting further and further into bad programming practices.
dash-tom-bang
No. It's a fine practice. It simply causes the console to wait for a keypress before closing.
George Edison
ok, i see where you mean, thank you
Dakota
@dash: No, see here: http://cplusplus.com/reference/clibrary/cstdlib/system
George Edison
+1  A: 

The easiest way is to wait for the user to press a key before returning from main.

redtuna
+2  A: 

In Visual C++ you can either:

  • Put a breakpoint at the closing brace of main and run attached to the debugger (Debug -> Start Debugging). When the breakpoint is hit you will be able to view the console window.
  • Run detached from the debugger (Debug -> Start Without Debugging). When the application terminates, the console window will stay open with a "Press any key to continue..." prompt.
James McNellis
I tried "start without debugging" but it still closes on me...
Dakota
@Dakota: Make sure your application is a console application (Project Properties -> Configuration Properties -> Linker -> System -> SubSystem should be "Console (/SUBSYSTEM:CONSOLE)").
James McNellis
It Worked! Thanks james.
Dakota
+1  A: 

You already have the answer in your code.. add another cin at the end of your program ;P user would have to press enter for program to continue and exit

Jonas B
A: 

I usually use cin.getchar() to wait for a character.

Michael Dorgan