Hello everybody!

I am new to D, and I am working on a program that calculates the area and circumference of a circle. However, when I compile it and run it, it waits for the user to input the radius, but then it closes while displaying a bunch of stuff.
I've tried several ways to get it to wait, but none of them work.

Here's my latest code:

//Written in the D programming language! (Which rocks by the way!)
//Import the necessary modules
import std.stdio;
import std.math;
import std.conv;
import std.string;

//Welcome the user
int welcome()
{
        writefln ("Welcome to the Circle Calculator!");
        return 0;
}

//Ask for the radius
float askradius()
{
        char[] number;
        float radius;
        writefln ("What is the radius of your circle?\n");
        stdin.readln(number);
        radius = to!float(number);
        //Put the radius into a variable
        return radius;
}

//Show the user the results
void result()
{
        writefln ("The area is:", area());
        writefln ("The circumference is:", cir());
}

//Wait
void wait()
{
        writefln ("Type A to continue!");
        exittest();
}

//Exit tester
void exittest()
{
        char[] a;
        stdin.readln(a);
        if (a == "A")
        {
                exit();
        }
        else
        {
                wait();
        }
}

//Loop escape
void exit()
{
}

//Define pi
float pi()
{
        float pi = 3.14159265358979323;
        return pi;
}

//Calculate the square of the radius (for the area)
float sqradius()
{
        float sqradius = askradius() * askradius();
        return sqradius;
}

//Calculate area
float area()
{
        float area = pi() * sqradius();
        return area;
}

//Calculate double the radius (for the circumference)
float dbradius()
{
        float dbradius = askradius() * 2;
        return dbradius;
}

//Calculate circumference
float cir()
{
        float cir = pi() * dbradius();
        return cir;
        
}

void main()
{
        welcome();
        askradius();
        dbradius();
        sqradius();
        area();
        cir();
        result();
        wait();
}

How should I fix this so it will wait for the user to press a key to exit?

Thanks a ton!

-Alexander
        

Reply via email to