KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have only been able to find one way for functions to take a variable amount of arguments. It's this way: #include <iostream> #include <stdarg.h> using namespace std; void Print(int argumentAmount, ... ); int main() { Print(5,11,22,33,44,55); } void Print(int argumentAmount, ... ){ va_list arguments; va_start(arguments, argumentAmount); int parameter; for(int i = 0; i < argumentAmount; ++i ){ parameter = va_arg(arguments, int); cout << parameter << endl; } va_end(arguments); return; } 2 Problems: 1.) I have to specify how many arguments I'm sending in- not desirable 2.) I can't figure out how to modify it so it will output strings. Would something like this be possible without having to overload the function multiple times: void Output(/*not sure how this would look*/); int main(){ Output("hello","world"); Output("this","is","a","test"); Output("As","many","strings","as","you","want","may","be","passed","in"); return 0; } void Output(/*not sure how this would look*/){ //loop through each string passed in and output it } What about this: void Capitalize(/*all passed by reference*/); int main(){ string s1 = "hello"; string s2 = "world"; string s3 = "this"; string s4 = "is"; string s5 = "a"; string s6 = "test"; string s7 = "as"; string s8 = "many"; string s9 = "strings"; string s10 = "as"; string s11 = "you"; string s12 = "want"; Capitalize(s1,s2); Capitalize(s3,s4,s5,s6); Capitalize(s7,s8,s9,s10,s11,s12); return 0; } void Capitalize(/*all passed by reference*/){ //capitalize each string passed in } All I can think to do is: -overload the function multiple times -have the function accept som
Tags (comma-separated)
Save Edits
Cancel