CPPinator is a Python automation script designed for compiling and running multiple C++ files in a specified directory. It simplifies the process of handling multiple C++ programs and provides a clear and organized output for each program's execution along with the execution time for each program.
Project description
CPPinator
CPPinator is a Python automation script designed for compiling and running multiple C++ files in a specified directory. It simplifies the process of handling multiple C++ programs and provides a clear and organized output for each program's execution along with the execution time for each program.
How it works
-
The script allows you to specify a directory path where your C++ source code files are located.
-
It changes the current working directory to the specified path.
-
CPPinator lists all the C++ source code files with the
.cppextension in the directory. -
For each
.cppfile found, it compiles the code usingg++and runs the resulting executable. -
The script captures and displays the output and any errors produced by each program.
-
Upon successful execution of all C++ files, it provides a summary message.
-
Finally, the compiled executable file (
a.exe) is deleted to keep your directory clean.
Usage
-
Ensure you have Python and a C++ compiler (e.g., g++) installed on your system.
-
Install the
CPPinatorpackage from PyPI using pip:pip install CPPinator
OR
Clone or download the
CPPinator.pyscript to your local machine.git clone https://github.com/Hardvan/CPPinator cd CPPinator pip install .
-
Call the
compile_and_run_cpp_filesfunction from theCPPinatorpackage with the directory path as an argument.from CPPinator import compile_and_run_cpp_files compile_and_run_cpp_files("path/to/your/directory")
View the
run.pyfile for an example of how to use theCPPinatorpackage.
Example Output
Here's an example of the script's output when run with a list of C++ files in the Basic Problems directory.
Changing working directory... Current working directory: F:\CPPinator\Basic Problems
List of .cpp files:
count_digits.cppdivisors.cppgcd.cpppalindrome_number.cppprime.cppreverse_array.cppreverse_number.cpp
Running .cpp files:
-
count_digits.cpp(1.07s)No. of digits in 123456789 is:
9
9
9
Expected: 9 -
divisors.cpp(1.14s)Divisors of 100 are:
1 100 2 50 4 25 5 20 10
Divisors of 100 are:
1 2 4 5 10 20 25 50 100
Expected: 1 2 4 5 10 20 25 50 100 -
gcd.cpp(1.16s)GCD of 12 and 15 is:
3
3
Expected: 3 -
palindrome_number.cpp(1.07s)12321 is palindrome: true
Expected: true -
prime.cpp(1.11s)100 is not prime
100 is not prime
Expected: not prime -
reverse_array.cpp(1.05s)Original array:
1 2 3 4 5
Reversed array using two pointers:
5 4 3 2 1
Reversed array using recursion:
5 4 3 2 1
Reversed array using temporary array:
5 4 3 2 1
Expected: 5 4 3 2 1 -
reverse_number.cpp(1.24s)Reverse of 123456789 is: 987654321
Expected: 987654321
✅ Ran all C++ files successfully. (7.84s)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file CPPinator-1.0.5.tar.gz.
File metadata
- Download URL: CPPinator-1.0.5.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6de908c83672d96163aa4a495714668b3e2df46382ea85815cf9d42f3ff18c7f
|
|
| MD5 |
b049207e7dffeb2851e907fc8511e6d0
|
|
| BLAKE2b-256 |
64f345118629deae461d88649cad258582e15e16281ea15c221d5a344f3d37ad
|
File details
Details for the file CPPinator-1.0.5-py3-none-any.whl.
File metadata
- Download URL: CPPinator-1.0.5-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01fcc599af3b12dfe4cdaaf9122919e1f20f86699fb328292df1b8ebdda4787b
|
|
| MD5 |
d595c1ea6e50b72634917ab298ded559
|
|
| BLAKE2b-256 |
3611be4e76cb7b7fae1383c67738e0f4b60f45c5c515760140a2c0aed67477cd
|