Jump to content

Favorite c++ compiler?


gte
 Share

Recommended Posts

Yes, the book for the class is all pseudocode and I have learned almost nothing from it, anything I have picked up has been from this site

http://www.cplusplus.com

I saw your post about books, so if I can get a text version of the second book you recommended (that was easier to read) I will buy it.

Today I learned that you can define a functions return value by putting int or whatever in front of them, so that's a little progress. My function is defined (after the syntax was explained to me) now and working, but when I put a letter into it, it loops endlessly, so now I have to figure out how to write an isalpha or isnumeric while statement for error checking.

If you have any other beginner books that I can get on amazon, I'm all ears.

Really, go get a real book. You're missing some basics. Whatever you're attempting to learn from is absolute garbage. I have never seen anyone who is unable to define a function.

Link to comment
Share on other sites

I thought we established a long time ago in this thread that the problem wasn't the compiler but rather the learning materials failing to adequately educate in how to use the language? Quite honestly, if the OP is so confused and can't manage to use Visual C++ correctly then beyond lost is all that can be hoped for with gcc.

Link to comment
Share on other sites

  • 3 weeks later...

I wanted to thank everyone that replied and offered reading material for me to take in, since my psuedocode book was pretty much worthless.

Here was my final project that I wrote for the class. I have a ton to learn, but came a long way since giving up on the book and using much better materials such as the books and sites pointed at in this thread.

The code for my final project (a mortgage calculator is below) . I had a lot of trouble with data validation (this is so much easier in autoit!) going into endless loops, and I had help with that, but the rest of the program I wrote without help.

I'm going to read more over the winter break about c and c++ object oriented stuff, and see if I want to take another class in the spring semester.

Long story short, thanks for the communal help! ;)

// finalproject.cpp : main project file.

#include"stdafx.h"
#include<iostream>
#include <string>
#include <cctype>
#include <math.h>

using namespace System;
using namespace std ;

//Global Variables

int $skipamortizationtabletablelocation ;

float _calculatecurrentmortgage(float $calculatecurrentmortgagevar1, float $calculatecurrentmortgagevar2, int $calculatecurrentmortgagevar3)   
{    
        float $currentpaymenti = ((($calculatecurrentmortgagevar2 * .01) / 12) + 1) ;
        int $currentpaymentn = ($calculatecurrentmortgagevar3 * 12) ;

        float $currentpaymentnumerator = $calculatecurrentmortgagevar1 * ((($calculatecurrentmortgagevar2 * .01) / 12) * (pow ($currentpaymenti,$currentpaymentn))) ;
        float $currentpaymentdenominator = (pow($currentpaymenti,$currentpaymentn) -1) ;
        float $currentpaymentreturn = $currentpaymentnumerator / $currentpaymentdenominator ;

        return($currentpaymentreturn) ;
}

float _calculatetotalinterest(float $calculatetotalinterestvar1, int $calculatetotalinterestvar2, float $calculatetotalinterestvar3)
{
    float $currenttotalinterest = ($calculatetotalinterestvar1 * ($calculatetotalinterestvar2 * 12)) - $calculatetotalinterestvar3 ;

    return($currenttotalinterest) ;
}


                                    // principal                  //terminmonths                     //interestrate                      //monthly payment             //years left                         //months left                //should table be actual or theoretical
float _amortizationtable(float $calculateamortizationvar1, int $calculateamortizationvar2, float $calculateamortizationvar3, float $calculateamortizationvar4, int $calculateamortizationvar5, int $calculateamortizationvar6, char $calculateamortizationvar7)
{
    float $remainingprincipalamount = $calculateamortizationvar1 ;
    cout << "Month" << "     " << "Payment" << "     " << "Amount towards principal" << "     " << "Amount towards interest" << "     " << "Total Interest Paid" << "     " << "Balance" << endl << endl ;

    for(int $i = 1; $i <= ($calculateamortizationvar2 * 12); $i++)
    {
          float $interestpaymentamount = $remainingprincipalamount * ($calculateamortizationvar3 / 1200) ;
          float $principalpaid = ($calculateamortizationvar4 - $interestpaymentamount) ;
          float $totalinterestpaid = ($totalinterestpaid + $interestpaymentamount) ;

          $remainingprincipalamount = ($remainingprincipalamount - $principalpaid) ;
          cout << $i << "      " << $calculateamortizationvar4 << "     " << $principalpaid << "     " << $interestpaymentamount << "     " << $totalinterestpaid << "     " << $remainingprincipalamount << endl << endl ;

         if (($i == 60 ) || ($i == 120) || ($i == 180) || ($i == 240) || ($i == 300) || ($i == 360) || ($i == 420) || ($i == 480))
         {
                system("Pause") ;
         }

          int $amortizationtablelocation ;
          

          if (($calculateamortizationvar7 != 'Y') || ($calculateamortizationvar7 != 'y'))
          {
               $amortizationtablelocation = (($calculateamortizationvar2 * 12) - (($calculateamortizationvar5 * 12) + $calculateamortizationvar6)) ;
        
          }

            
          if ($calculateamortizationvar7 == 'n')
          {
              if ($i == $amortizationtablelocation)
              {
                    cout << endl << endl << " *** You're next payment month is here according to your input value *** " << endl << endl ;
              }
          }
    }

    return(0) ;
}

string ValidateStringInput(string $questionMessage, bool $Template)
{
  int $k = 0; 
  string $returnValue = "";

   while (1)
   {
        // Get first name
        cout << $questionMessage;
        getline(cin, $returnValue);             
        
        $k = 0;
        bool bRejected=false;                
     

        for (unsigned int nIndex=0; nIndex < $returnValue.length() && !bRejected; nIndex++)
        {
            
            if (isalpha($returnValue[nIndex]))
            {
                 if ($Template)
                 { 
                     if (($returnValue[nIndex]=='Y') || ($returnValue[nIndex]=='N') || ($returnValue[nIndex]=='y') || ($returnValue[nIndex]=='n'))
                     {
                          $k = $k + 1;
                          continue;
                     }
                 }
                 else
                 {
                   $k = $k + 1;
                   continue;
                 }
            }

            
            if ($returnValue[nIndex]==' ')
            continue;

            cout << " *** Data Input Type Error *** (Alpha characters only, if Yes or No type Y or N)" << endl ;
            bRejected = true;

        }

         if ($Template)
         {
              if ($k == 0) bRejected = true;
              if ($k > 1) bRejected = true;
         }
         else
         {
            if ($k == 0) bRejected = true;
         }


         if (!bRejected)
          break;
   }
 
    return $returnValue;
}

int ValidateNumericData(string $questionMessage)
{
   int $returnValue = 0;

   while (1)
   {
       cout << $questionMessage;
       cin >> $returnValue;
 
        if (cin.fail())             
        {
            cin.clear();            
            cin.ignore(1000, '\n'); 
            cout << " *** Data Input Type Error *** (Whole Numbers Only)" << endl ;
            continue;               
        }
 
        cin.ignore(1000, '\n');    
        if (cin.gcount() > 1)       
            continue;               
 
        if ($returnValue < 0)       
            continue;
            break;
    }

   return $returnValue;
}

int ValidateRangeData(string $questionMessage, int $maxValue)
{
   int $returnValue = 0;

   while (1)
   {
       cout << $questionMessage;
       cin >> $returnValue;
 
        if (cin.fail())              
        {
            cin.clear();             
            cin.ignore(1000, '\n');
            cout << " *** Data Input Type Error *** (Only One Number Should be Entered)" << endl ;
            continue;                
        }
 
        cin.ignore(1000, '\n');      
        if (cin.gcount() > 1)        
            continue;                
 
        if ($returnValue < 0)        
            continue;

        if ($returnValue > $maxValue) 
            continue;

        break;
    }

   return $returnValue;
}

float ValidateFloatData(string $questionMessage)
{
   float $returnValue = 0.0f;

   while (1)
   {
       cout << $questionMessage;
       cin >> $returnValue;
 
        if (cin.fail())             
        {
            cin.clear();            
            cin.ignore(1000, '\n'); 
            cout << " *** Data Input Type Error *** (Whole Numbers or Decimal Numbers Only)" << endl ;
            continue;               
        }
 
        cin.ignore(1000, '\n');     
        if (cin.gcount() > 1)       
            continue;               
 
        if ($returnValue < 0)       
            continue;
 
        break;
    }

   return $returnValue;
}

int main()
{
    string $firstname ;
    string $pmiresponse ;
    string $redocalculationsresponse ;
    string $amortizationtableresponse ;
    string $continuecalculationsresponse ;
    string $pmiyes ;
    
    char $redocalculationsresponses ='N' ;

    int $testfunc1 = 0 ;
    int $testfunc2 = 0 ;

    int $k = 0;
    int $foobar2 = 0 ;
    int $yearsleft = 0 ;
    int $monthsleft = 0 ;
    int $changeoption = 0 ;
    int $currenthomevalue = 0 ;
    int $mortgageterminyears = 0;
    int $newmortgageterminyears = 0 ;
    int $amortizationtabledisplay = 0 ;
    

    float $totalinterest = 0.0f ;
    float $monthlypayment = 0.0f ;
    float $principalamount = 0.0f ;
    float $newinterestrate = 0.0f ;
    float $pmipaymentamount = 0.0f ;
    float $newprincipalamount = 0.0f ;
    float $extrapaymentamount = 0.0f ;
    float $totalinterestamount = 0.0f ;
    float $currentinterestrate = 0.0f ;
    float $currentpaymentamount = 0.0f ;
    float $newcurrentinterestrate = 0.0f ;
    float $newtotalinterestamount = 0.0f ;
    float $newcurrentpaymentamount = 0.0f ;

     cout << " Welcome to the mortgage calculation utility, \n " <<
             " this program allows you to input your mortgage amount borrowed, \n " <<
             " years borrowed for and fixed interest rate. \n " <<
             " This program then allows you to see what your current \n " <<
             " principal + interest payments are per month and gives you \n " <<
             " the opportunity to see how long it would take you to pay off \n " <<
             " your mortgage if you paid an additional amount towards the principal, \n " <<
             " above and beyond the minimum monthly payment due. \n " <<
             " This program will also allow you to change your interest rate to see\n " <<
             " how that will affect your monthly mortgage principal + interest payment. \n" << 
             " *** Please hit the enter key after each response. *** \n *** Do not include extra spaces *** . " << endl ;
     cout << endl ;
    
     $firstname = ValidateStringInput("1. Please enter your first name: ", false);
     cout << endl ;

     cout << " Thank you " << $firstname << " !!! \n " <<
             " Now onto the calculations part of this program. \n " <<
             " We will start with your current mortgage, \n " << endl ;

    $mortgageterminyears = ValidateNumericData("2. Please enter how many years your mortgage was for, originally : ");
    //cout << " Your mortgage : " << $mortgageterminyears << endl;

    yearsleft:
    $yearsleft = ValidateNumericData("3. Please enter how many years you have left on your current mortgage : ");
    //cout << " Your years left  : " << $yearsleft << endl;
    if ($yearsleft >= $mortgageterminyears)
    {
        cout << endl << "Your years left in your mortgage CANNOT be equal to or greater than \n the mortgage term itself" << endl << endl ;
        goto yearsleft ;
    }

    $monthsleft = ValidateNumericData("4. Please enter how many months (0-11) you have left on the \n current mortgage year : ");
    //cout << " Your months left  : " << $monthsleft << endl;
 
    $principalamount = ValidateFloatData("5. Please enter how much money (round to the nearest whole dollar) \n did you originally borrow from the bank? (NO COMMAS) \n (this is also known as your principal) : ");
    //cout << " Your principal  : " << $principalamount << endl;

    $currentinterestrate = ValidateFloatData("6. Please enter what is your current fixed interest rate? \n (Format of X.X please) : ");
    //cout << " Your fixed interest rate  : " << $currentinterestrate << endl;

    $currenthomevalue = ValidateFloatData("7. Please enter what is your home current value?  (NO COMMAS) \n (round to the nearest whole dollar) : ");
    //cout << " Your homes current value  : " << $currenthomevalue << endl;
    if (($currenthomevalue * .80) >= $principalamount)
    {
        cout << endl << " *** Your loan to value (LTV) ratio is good! \n You should NOT be paying private mortgage insurance. ***" << endl ;
        $pmiyes = " *** You should NOT be paying PMI because of your loan to value ratio. *** " ;
    }
    else if (($currenthomevalue * .80) < $principalamount)
    {
        $pmiyes = " *** You should be paying PMI because of your loan to value ratio. *** " ;
    }

    $currentpaymentamount = _calculatecurrentmortgage($principalamount, $currentinterestrate, $mortgageterminyears) ;
    $totalinterestamount = _calculatetotalinterest($currentpaymentamount, $mortgageterminyears, $principalamount) ;

    cout << endl << " Thanks. Your principal + interest payment is $" << $currentpaymentamount << " per month. \n " <<
                    " You will pay $" << $totalinterestamount << " of interest \n"<<
                    " (on top of the principal) over the life of the loan." << endl << endl ;

    cout << $pmiyes << endl ;
    $pmiresponse = ValidateStringInput(" Do you currently pay private mortgage insurance? ( Y or N ) : ", true) ; 
    // cout << " Your response is  : " << $pmiresponse << endl;
    cout << endl ;

     if (($pmiresponse[0] == 'Y') || ($pmiresponse[0] == 'y')) 
     {
         cout << "How much is your private mortgage insurance per month?" << endl ;
         cin >> $pmipaymentamount ;
         cout << endl << "Your payment with private mortgage insurance is " << $currentpaymentamount + $pmipaymentamount << endl << endl ;
     }
     else
     {
         $pmipaymentamount = 0 ;
     }

     cout << endl ;
        restartrecalculate:
     cout << "Would you like to perform the same calculations by changing one or more of the values? ( Y or N )" << endl ;
     cin >> $redocalculationsresponse;
     cout << endl ;

     if (($redocalculationsresponse[0] == 'Y') || ($redocalculationsresponse[0] == 'y'))
     {                           
         $redocalculationsresponses ='Y';

         restart:

          do
          {
                string $pressmessage = " Now what would you like to change to see how your payment and total interest would change? \n Press 1 to change your loan/principal amount. \n Press 2 to change the term (length) of the loan. \n Press 3 to change the interest rate. \n Press 4 to recalculate, if done. \n Press 5 to restart. \n Press 0 to quit.\n";
                
                $changeoption = ValidateRangeData($pressmessage, 5);
                //cout << " Your option is  : " << $changeoption << endl;
                cout << endl ;

                switch ($changeoption)
                {    
                      case 1: 
                                 $newprincipalamount = ValidateFloatData("What would be the amount of your new principal? (NO COMMAS) \n (The new dollar amount you are borrowing)");
                                 break;
                      case 2: 
                                 $newmortgageterminyears = ValidateNumericData("How many years would you like the term of your loan to be for?");
                                 break;
                      case 3: 
                                 $newcurrentinterestrate = ValidateFloatData("What would you like your new interest rate to be calculated at?");
                                 break;
                      case 4: 
                                 cout << "Starting calculations over." << endl ;
                                 if($newprincipalamount == 0)
                                 {   
                                       $newprincipalamount = $principalamount ;
                                 }

                                 if($newmortgageterminyears == 0)
                                 {
                                       $newmortgageterminyears = $mortgageterminyears ;
                                  }

                                  if($newcurrentinterestrate == 0)
                                  {
                                       $newcurrentinterestrate = $currentinterestrate ;
                                   }
                                                
                                  $newcurrentpaymentamount = _calculatecurrentmortgage($newprincipalamount, $newcurrentinterestrate, $newmortgageterminyears) ; 
                                  $newtotalinterestamount = _calculatetotalinterest($newcurrentpaymentamount, $newmortgageterminyears, $newprincipalamount) ;

                                   cout << " Thanks. \n" <<
                                            " Your principal + interest payment (and PMI if you input a PMI value) \n is $" << $newcurrentpaymentamount + $pmipaymentamount << " per month. \n" <<
                                            " You will pay $" << $newtotalinterestamount << " of interest (on top of the principal) over the life of the loan." << endl  ; // new payment output 
                                   cout << endl ;
                                   $redocalculationsresponse[0] = 'Y' ;
                                   break;

                        case 5: 
                                   cout << "Starting calculations over." << endl ;

                                   $newprincipalamount = 0 ;
                                   $newmortgageterminyears = 0 ;
                                   $newcurrentinterestrate = 0 ;

                                   goto restart ; 
                                   break;
                         default : 
                                   cout << endl << "Thank you for using this tool." << endl << endl ;
                                   system("PAUSE") ;
                                   return(0) ;
                                   break;
                          }
                    } while ($changeoption != 4);
     }
     else if (($redocalculationsresponse[0] == 'N') || ($redocalculationsresponse[0] == 'n'))
     {

     }
     else
     {
         cout << " *** Failed data input, a Y or N is required, try again. *** " << endl ;
         goto restartrecalculate ;
     }

                   $amortizationtableresponse = ValidateStringInput("Would you like to see an amortization table? ( Y or N ) : ", true) ; 

                   if (($amortizationtableresponse[0] == 'Y') || ($amortizationtableresponse[0] == 'y'))
                   {
                        if($newprincipalamount == 0)
                        { 
                            $newprincipalamount = $principalamount ;
                            cout << "New principal amount: " << $newprincipalamount << endl ;
                         }

                         if($newmortgageterminyears == 0)
                         {
                              $newmortgageterminyears = $mortgageterminyears ;
                              cout << "New mortgage term: " << $newmortgageterminyears << endl ;
                         }

                         if($newcurrentinterestrate == 0)
                         {
                              $newcurrentinterestrate = $currentinterestrate ;
                              cout << "New interest rate: " << $newcurrentinterestrate << endl ;
                         }

                         if($newcurrentpaymentamount == 0)
                         {
                              $newcurrentpaymentamount = $currentpaymentamount ;
                              cout << "New payment amount: " << $newcurrentpaymentamount << endl ;
                          }

                          $amortizationtabledisplay = _amortizationtable($newprincipalamount, $newmortgageterminyears, $newcurrentinterestrate, $newcurrentpaymentamount, $yearsleft, $monthsleft, $redocalculationsresponse[0]) ;

                    }
                    else if (($amortizationtableresponse[0] == 'N') || ($amortizationtableresponse[0] == 'n'))
                    {

                    }
            
                        $continuecalculationsresponse = ValidateStringInput("Would you like to calculate another mortgage value?  ( Y or N ) : ", true) ; 
 
                        if (($continuecalculationsresponse[0] == 'Y') || ($continuecalculationsresponse[0] == 'y'))
                        {
                            goto restart ;

                         }
                         else
                         {
                            cout << endl << " Thank you for using this tool " << $firstname << "." << endl << endl ;
                            system("PAUSE") ; 
                            return 0;
                         }
                        
}
Link to comment
Share on other sites

gte - great stuff, good to hear you pressed on and completed it. Valik is right, the $ in Autoit do not apply in C++.

Good luck with the learning over the break ;)

Post your code because code says more then your words can. SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y. Use Opt("MustDeclareVars", 1)[topic="84960"]Brett F's Learning To Script with AutoIt V3[/topic][topic="21048"]Valuater's AutoIt 1-2-3, Class... is now in Session[/topic]Contribution: [topic="87994"]Get SVN Rev Number[/topic], [topic="93527"]Control Handle under mouse[/topic], [topic="91966"]A Presentation using AutoIt[/topic], [topic="112756"]Log ConsoleWrite output in Scite[/topic]

Link to comment
Share on other sites

I plan to transition away from the $ in my next project that I do, my instructor also said the same thing about variable declaration

It seems to me you have not used the '$' anywhere other than in variable names. Therefore, you can just replace all of them with nothing in whatever editor/IDE you're using.
Link to comment
Share on other sites

You need to read a style guide (but don't take it as gospel, read more than one if possible). Your variable names are way too long. For names that long you need to use CamelCase or something to differentiate work-breaks because the code might as well be obfuscated. The names should also just be shorter no matter what naming convention you use.

Don't name functions with a leading underscore. This is typically reserved for the compiler vendor. While you can do it in your code (obviously), it's not a good idea to do so.

Where are you getting these bad habits? I've never seen anyone start C/C++ and have these particular bad habits.

Link to comment
Share on other sites

I wanted to thank everyone that replied and offered reading material for me to take in, since my psuedocode book was pretty much worthless.

Here was my final project that I wrote for the class. I have a ton to learn, but came a long way since giving up on the book and using much better materials such as the books and sites pointed at in this thread.

The code for my final project (a mortgage calculator is below) . I had a lot of trouble with data validation (this is so much easier in autoit!) going into endless loops, and I had help with that, but the rest of the program I wrote without help.

I'm going to read more over the winter break about c and c++ object oriented stuff, and see if I want to take another class in the spring semester.

Long story short, thanks for the communal help! ;)

I saw a goto in there! :evil:

Goto's are removed from most modern languages for a reason. You better just forget it exists.

Here's something to think about before putting down those characters. GOTO

A good style guide to read is google's, I don't agree with everything but I tend to think about it while coding because I know it makes sense.

http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

Put much energy on learning OO properly! Dividing a program into objects makes the source very readable and maintanable. C++ greatest strength (imo) is that it combines low-level code with high level objects.

Broken link? PM me and I'll send you the file!

Link to comment
Share on other sites

Wow, goto. I didn't catch that. I think you may be tainted for life. You have picked up on some of the worst things you can do. I guess you aren't reading any of the books I recommended after all because none of the bad habits you are demonstrating are present.

Honestly? I hope you fail the project because that's the only hope the class is actually worth taking. If you don't fail for the use of goto then the class is a sham.

Link to comment
Share on other sites

The $ was from AIT of course, the underscore was from a coworker. I really liked the underscore thing? It makes me reading my own code easier.

How do you differentiate variables and functions, if at all?

You need to read a style guide (but don't take it as gospel, read more than one if possible). Your variable names are way too long. For names that long you need to use CamelCase or something to differentiate work-breaks because the code might as well be obfuscated. The names should also just be shorter no matter what naming convention you use.

Don't name functions with a leading underscore. This is typically reserved for the compiler vendor. While you can do it in your code (obviously), it's not a good idea to do so.

Where are you getting these bad habits? I've never seen anyone start C/C++ and have these particular bad habits.

Link to comment
Share on other sites

That's pretty ignorant ... you seem to have forgotten what is was like when you first started coding (be it with c++ or whatever language you started with) . Maybe go back and look at your code, if you still have it and see if all of it fit within best practice code recommendations.

Anyway, I got 100%

Honestly? I hope you fail the project because that's the only hope the class is actually worth taking. If you don't fail for the use of goto then the class is a sham.

Link to comment
Share on other sites

The $ was from AIT of course, the underscore was from a coworker. I really liked the underscore thing? It makes me reading my own code easier.

The co-worker has apparently never encountered Standard C++ where functions with a leading underscore are reserved for the compiler vendor.

How do you differentiate variables and functions, if at all?

By using naming conventions to name variables and functions.

That's pretty ignorant ... you seem to have forgotten what is was like when you first started coding (be it with c++ or whatever language you started with) . Maybe go back and look at your code, if you still have it and see if all of it fit within best practice code recommendations.

Of course not. But I didn't do some rather obscure stuff like prefix variables with dollar signs (even though I was familiar with that notation from AutoIt and other languages). I didn't have excessively long variable names. I had actually read a lot of code before I ever started writing code so I had some idea how code was supposed to look. I was able to write readable code when I started out, even if it wasn't the most logically sound or the most technically correct.

Anyway, I got 100%

Then quite honestly the course isn't going to teach you the right things. Any professor who allows goto in student's code is allowing them to learn to be bad programmers. There's absolutely no way your code is worth 100%. It loses marks for being non-standard or at the very least highly atypical of real world. What good is a course that doesn't teach you right from wrong? And the previous excuse of being new doesn't really cut it. I remember reading a lot of code. Yes, you pick up bad habits that way. In general though you don't pick up multiple bad habits.
Link to comment
Share on other sites

  • 4 weeks later...

Well done on passing. :D Does not matter you make mistakes when you are learning as long as you learn from them :huggles:

On my last project, the lead dev decided to use gotos instead of try-catch statements, somethings three deep. It was like watching the Titanic when you know what is going to happen, there were issues.

You don't have understand the implications of using bad practices like gotos, just know NEVER to use them, there is a reason why Valik and monoceres are so against them.

Post your code because code says more then your words can. SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y. Use Opt("MustDeclareVars", 1)[topic="84960"]Brett F's Learning To Script with AutoIt V3[/topic][topic="21048"]Valuater's AutoIt 1-2-3, Class... is now in Session[/topic]Contribution: [topic="87994"]Get SVN Rev Number[/topic], [topic="93527"]Control Handle under mouse[/topic], [topic="91966"]A Presentation using AutoIt[/topic], [topic="112756"]Log ConsoleWrite output in Scite[/topic]

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...