My C++ program does nothing
<p>I am new to programming and especially C++ so I decided to re-write a java program I wrote to convert a number (for example 13) to words (thirteen), and it worked fine but I tried re-writing it in C++ and after compiling, starting the program, and entering the number it does nothing. I am sorry if thing like my variable's names are unusual.</p>

<p>This is the java program:</p>

<pre><code>public class Say
{
//AAAARRRRRR!!!! Here be Arrrrrrays!
static String first[] =
{
    "" , "One " , "Two " , "Three ", "Four ", "Five " , "Six " , 
    "Seven " , "Eight " , "Nine " , "Ten " , "Eleven " , "Twelve " , 
    "Thirteen " , "Fourteen " , "Fifteen " , "Sixteen " , "Seventeen " ,
    "Eighteen " , "Nineteen "
};

static String second[] =
{
    "" , "" , "Twenty " , "Thirty " , "Fourty " , "Fifty " , 
    "Sixty ", "Seventy " , "Eighty " , "Ninety "
};

static String sections[] =
{
    "" , "Hundred " , "Thousand " , "Million " , "Billion "
};
//Number stuff ho!
public static void main( String[] args )
{
    String origin = ( args[0] );
    int original = Integer.parseInt( origin );
    int orlength = origin.length();
    int remaindr = ( orlength % 3 );
    int legroups;
    if ( remaindr != 0 )
    {
        legroups = ( orlength / 3 + 1 );
    }
    else
    {
        legroups = ( orlength / 3 );
    }

    //Groups AAAARRR here matey!
    int groupone = ( original % 1000 );
    int grouptwo = ( ( ( original % 1000000 ) - groupone ) / 1000 );
    int groupthr = ( ( ( original % 1000000000 ) - grouptwo ) / 1000000 );



    //[Pirate themed comment on this being a loop]
    boolean finished = false;
    int takestep = 0;
    while ( finished == false )
    {
        takestep ++;
        int numinact;
        if ( takestep == 1 )
        {
            numinact = groupthr;
        }
        else if ( takestep == 2 )
        {
            if ( groupthr != 0 )
            {
                System.out.print( sections[ 3 ] );
            }
            numinact = grouptwo;
        }
        else
        {
            if ( grouptwo != 0 )
            {
                System.out.print( sections[ 2 ] );
            }
            numinact = groupone;
            finished = true;
        }
        if ( numinact &gt; 99 )
        {
            int hundreds = ( ( numinact - ( numinact % 100 ) ) / 100 );
            System.out.print( first [ hundreds ] + sections [ 1 ] );
            numinact = ( numinact % 100 );
        }
        if ( numinact &lt;= 19 )
        {
            System.out.print( first [ numinact ] );
        }
        else if ( numinact &lt;= 29 )
        {
            int digitact = ( numinact - 20 );
            System.out.print( second[ 2 ] + first[ digitact ] );
        }
        else if ( numinact &lt;= 39 )
        {
            int digitact = ( numinact - 30 );
            System.out.print( second[ 3 ] + first[ digitact ] );
        }
        else if ( numinact &lt;= 49 )
        {
            int digitact = ( numinact - 40 );
            System.out.print( second[ 4 ] + first[ digitact ] );
        }
        else if ( numinact &lt;= 59 )
        {
            int digitact = ( numinact - 50 );
            System.out.print( second[ 5 ] + first[ digitact ] );
        }
        else if ( numinact &lt;= 69 )
        {
            int digitact = ( numinact - 60 );
            System.out.print( second[ 6 ] + first[ digitact ] );
        }
        else if ( numinact &lt;= 79 )
        {
            int digitact = ( numinact - 70 );
            System.out.print( second[ 7 ] + first[ digitact ] );
        }
        else if ( numinact &lt;= 89 )
        {
            int digitact = ( numinact - 80 );
            System.out.print( second[ 8 ] + first[ digitact ] );
        }
        else if ( numinact &lt;= 99 )
        {
            int digitact = ( numinact - 90 );
            System.out.print( second[ 9 ] + first[ digitact ] );
        }
    }       
    //Yarrr! Debug be what this is!
    //System.out.println( " original is " + original + ", orlength is " +
    //  orlength + ", remaindr is " + remaindr + ", legroups is " + 
    //  legroups + ", groupone is " + groupone + ", grouptwo is " +
    //  grouptwo + ", groupthr is " + groupthr );
}
</code></pre>

<p>}</p>

<p>And this is the C++ re-write that does not work:</p>

<pre><code>//C++ port of the Say.java program.
//I hope to extend to longer numbers in the future.

#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

static string digit [20] =
{
"" , "One " , "Two " , "Three ", "Four ", "Five " , "Six " , "Seven " , 
"Eight " , "Nine " , "Ten " , "Eleven " , "Twelve " , "Thirteen " , 
"Fourteen " , "Fifteen " , "Sixteen " , "Seventeen " , "Eighteen " ,
"Nineteen "
};

int main()
{
int original;   //declare int
cout &lt;&lt; "Enter your number: ";  //Requests user input
cin &gt;&gt; original;    //Recieves user input assigns value to previous variable
//Groups of 3 digits
int groupone = ( original % 1000 );
int grouptwo = ( ( original / 1000 ) % 1000);
int groupthr = ( original / 1000000 );

//Intense loop, almost direct from java version.

bool finished = false;
int takestep = 0;
while ( finished != true );
{
    takestep ++;
    int numinact;
    if ( takestep == 1 )
    {
        numinact = groupthr;
    }
    else if ( takestep == 2 )
    {
        if ( groupthr != 0 )
        {
            cout &lt;&lt; "Million ";
        }
        numinact = grouptwo;
    }
    else
    {
        if ( grouptwo != 0 )
        {
            cout &lt;&lt; "Thousand ";
        }
        numinact = groupone;
        finished = true;
    }
    if ( numinact &gt; 99 )
    {
        int hundreds = ( ( numinact - (numinact % 100 ) ) / 100 );
        cout &lt;&lt; digit[ hundreds ] &lt;&lt; "Hundred ";
        numinact = ( numinact % 100 );
    }
    if ( numinact &lt;= 19 )
    {
        cout &lt;&lt; digit[ numinact ];
    }
    else if ( numinact &lt;= 29 )
    {
        int digitact = ( numinact - 20 );
        cout &lt;&lt; "twenty " &lt;&lt; digit[ digitact ];
    }
    else if ( numinact &lt;= 39 )
    {
        int digitact = ( numinact - 30 );
        cout &lt;&lt; "thirty " &lt;&lt; digit[ digitact ];
    }
    else if ( numinact &lt;= 49 )
    {
        int digitact = ( numinact - 40 );
        cout &lt;&lt; "fourty " &lt;&lt; digit[ digitact ];
    }
    else if ( numinact &lt;= 59 )
    {
        int digitact = ( numinact - 50 );
        cout &lt;&lt; "fifty " &lt;&lt; digit[ digitact ];
    }
    else if ( numinact &lt;= 69 )
    {
        int digitact = ( numinact - 60 );
        cout &lt;&lt; "sixty " &lt;&lt; digit[ digitact ];
    }
    else if ( numinact &lt;= 79 )
    {
        int digitact = ( numinact - 70 );
        cout &lt;&lt; "seventy " &lt;&lt; digit[ digitact ];
    }
    else if ( numinact &lt;= 89 )
    {
        int digitact = ( numinact - 80 );
        cout &lt;&lt; "eighty " &lt;&lt; digit[ digitact ];
    }
    else if ( numinact &lt;= 99 )
    {
        int digitact = ( numinact - 90 );
        cout &lt;&lt; "ninety " &lt;&lt; digit[ digitact ];
    }
}
return 0;
}
</code></pre>

<p>What must I change to get it to run like the java program?</p>
