Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
158 views
in Technique[技术] by (71.8m points)

c++ - Xcode8 - Program is not executing correctly

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 << "
";
    /* 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 << "
";
            }
        }
        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 << "
";
            }
        }
    }

    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 << "
";

    /* 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 << "
";
            }
        }
        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 << "
";
            }
        }
    }


    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;

}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...