- you can pass the parameters as pointers, when calling the function. that way you can edit them inside the function and don't need to return them.
- you can use a vector or array or anything that can save more than one value.
You can't find an answer because you're using the wrong terminology. There are no "sub programs" in C/C++. There are, however, functions.
A function can only have one return value. But, that return value can be a structure that contains multiple values. Generally, you can either define your own data structure for the return type, or use std::pair or std::tuple.
If by sub-program you mean a sub-process, there are several ways to return values other than single integers. The easiest is probably a pipe, but you can also use files, shared memory and sockets. The exact method depends on the OS.
LB wrote:
You can't find an answer because you're using the wrong terminology. There are no "sub programs" in C/C++. There are, however, functions.
Standard C++ doesn't have a concept of sub-programs (sub-processes) but that doesn't mean the concept doesn't exist. Don't assume OP means something other than what he said. Ask if you're not sure.
You're giving LB a hard time about common terminology in CS, for which function is the correct equivalent in C and C++. Odds are on his response being correct.
I have never seen "subprogram" used as an alias for "subprocess".
[edit]
@Diblaliciouz
Yes, but not directly. A function only returns a single value. (That value may be a struct or a pointer to something like an array, but it is still a single value.)
A function may take as argument pointers or references which you can use set values outside the function.
I assumed OP did not mean invoking other processes because usually the return code indicates success or the kind of error that occurred, and is generally not used for anything else.