Xcode8 - Program is not executing correctly

2019-09-20 07:20发布

问题:

While using Xcode8 says that it is running but there is no output.

Output:

10

Please enter the rectangle's length:

10

Please enter the rectangle's width:

The length for the rectangle is 10.00

The width for the rectangel is 10.00

The area for a rectangle is 100.00

The radius for a circle is 10.00

The area for a circle is 314.16

Program ended with exit code: 0

Wanted Output:

Please enter the rectangle's length: 10

Please enter the rectangle's width: 10

The length for the rectangle is 10.00

The width for the rectangel is 10.00

The area for a rectangle is 100.00

The radius for a circle is 10.00

The area for a circle is 314.16

Program ended with exit code: 0

#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

// Function prototypes
double getLength(); // Function that receives the length
double getWidth(); // Function that receives the width
double getArea(double); //Function calculates area for circle
double getArea(double,double); // Function calculates area for rectangle
void displayData(double,double,double,double, double);
// displayData function is used to display values

int main() {

    // Declares variables
    double length, width, circleArea, rectangleArea;

    length = getLength(); // Stores length
    width = getWidth(); // Stores width
    circleArea = getArea(width); // Stores area of circle
    rectangleArea = getArea(width, length); // Stores are of rectangle

    // Displays the length, width, area of circle, and rectangle area
    displayData(length, width, rectangleArea, width, circleArea);

    return 0;
}

/* This function asks the user to enter the rectangle's length and
 then returns that values as a double */

double getLength() {
    double length;
    cout << "Please enter the rectangle's length: ";
    cin >> length; // User input is stored in variable length
    cout << "\n";
    /* While loop doesn't let user input a
    negative value or a value of zero for 
    the length of the rectangle. */

    while (length <= 0) {

        if (length < 0) { //if statement used when a negative value is entered for length
            cout << "INVALID INPUT!" << endl; // Error message
            cout << "Please enter a positive value for the Length of the Rectangle: ";
            // Asks the user to enter the length again

            cin >> length; // Stores value of length

            if (length > 0) {
                cout << "\n";
            }
        }
        if (length == 0) { // If statement used when a value of zero is entered for length
            cout << "INVALID INPUT!" << endl;//error message
            cout << "Please enter a positive value for the Length of the Rectangle: ";
            // Asks the user to enter the length again

            cin >> length;// Stores the value of length

            if (length > 0) {
                cout << "\n";
            }
        }
    }

    return length;
}

/* This function asks the user to enter the rectangle's width and
 then returns that values as a double */

double getWidth() {
    double width;
    cout << "Please enter the rectangle's width: ";
    cin >> width; // User input is stored in variable width
    cout << "\n";

    /* While loop doesn't let user input a
     negative value or a value of zero for the
     width of the rectangle. */

    while (width <= 0) {
        if (width < 0) { // If statement used when a negative value is entered for width

            cout << "INVALID INPUT!" << endl; // Error message
            cout << "Please enter a positive value for the Width of the Rectangle: ";
            // Asks the user to enter the width again
            cin >> width; //Stores the value of width in the variable, width
            if (width > 0) {
                cout << "\n";
            }
        }
        if (width == 0) { // If statement used when a value of zero is entered for width
            cout << "INVALID INPUT!" << endl; // Error message
            cout << "Please enter a positive value for the Width of the Rectangle: ";
            // Asks the user to enter the width again
            cin >> width; // Stores the value of width in the variable, width
            if (width > 0)
            {
                cout << "\n";
            }
        }
    }


    return width;
}

double getArea(double radius) {
    const double PI = 3.14159;
    double circleArea;

    circleArea = PI * pow(radius, 2); // Formula for the area of a circle
    return circleArea;

}

/* This function accepts the rectangle's length and width as arguments and returns
 the rectangle's area. The area is calculated by multiplying the length by the
 width. */

double getArea(double length, double width) {
    double rectangleArea;

    rectangleArea = length * width; // Formula for the area of a rectangle
    return rectangleArea;
}

/* This function accepts the rectangle's length, width, and area as arguments
 and displays them in an appropriate message on the screen */

void displayData(double l, double w, double ra, double r, double ca) {

    cout << setprecision(2) << fixed;
    cout << "The length for the rectangle is " << l << endl;
    cout << "The width for the rectangle is " << w << endl;
    cout << "The area for a rectangle is " << ra << endl << endl;
    cout << "The radius for the circle is " << r << endl;
    cout << "The area for the circle is " << ca << endl;

}

回答1:

When you use << with cout, it doesn't immediately push to the screen. A common way to send the output, as you've shown, is endl. If you don't want a line return, use flush.

cout << "Please enter the rectangle's length: " << flush;

EDIT: Xcode 8.3 seems to have new rules about cin and cout on the same line.