linux - How to run a C++ program in another C++ program? -


i have simple c++ program takes in inputs , outputs string. this:

$ ./game $ kind of game? type r regular, s special. $ r $ choose number 1 - 10 $ 1 $ no try again $ 2 $ no try again $ 5 $ yes win! 

now want write c++ program can runs c++ program , plays game automatically without user input , outputs file or standard output.

running this:

./program game r > outputfile 

game game program, r playing regular style.

how should this? main reason need program want automatic testing bigger program.

you use std::system <cstdlib>:

std::system("game r > outputfile"); 

the return value ./program's, sole argument must of type char const *.

there no standard way run program , feed standard input, though. judging command line, you're on unix variant popen <stdio.h> should work:

file *sub = popen("game r > outputfile", "w"); 

then write sub stdio functions , read outputfile afterwards.

(but simple testing, i'd recommend implementing core logic of program set of functions/classes can run custom main function in loop; or pick favorite scripting language handle kind of thing.)


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -