So basically what I need isn’t a specific code (of course that would be great), but just an idea and methods on how to achieve my goal.
1) I have to create a program in C++ , which generates a little example of C++ code, that is each time a bit different. (This causes no problems for me, I will use a template and randomize some variables in the code, which will make it unique every time.)
2) I will display the generated code and the user will have to type in, what he thinks the code prints out.
And here is where the problems start:
3) I have to take the generated code and compile it somehow to get a string with the text that the program would have printed out.
4) And then compare the string with what the user has typed in.
So the step 3) is where I stop and can’t figure it out without help… I was thinking to write the generated code in a function of a .cpp file and then call that function, but I couldn’t get it to work, so I started to think, I should ask an expert, maybe there are some other methods or ideas how to achieve this.
It’s probably simplest to wrap 2/3/4 into a script, and invoke that with
systemorpopen. The script can make sure the filenames are unique, fold stderr into stdout, etc. etc.Your running program isn’t really interacting with the compiled code, just reading the output, so keeping it as a seperate process is probably easiest. The script can add some markup to help you distinguish compiler output/errors from the program output.
I haven’t written a batch file for years, but once you know how to run your compiler from the command line (ref), you can write a script to:
.cppfile.exethen, in C++ you just need to save the code to the
.cppfile the script expects, execute the script likesystem("myScript.bat"), and then read the output file.If you don’t want to write a seperate batch script, you can just call
systemonce to invoke the compiler, and again to execute the resulting.exe.