# Any idea's for this problem? (hard to explain here)

This topic is 5095 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Alright... What I'm ultimatly trying to do is create my own custom sprintf() like function, i'm going to call it func() in my example. Now, I know a good deal about va_list, va_start, va_end, and va_arg. But my problem is I need to manipulate the data in the arguments before I output it based on it's type. I'll give an example. I'd call this funciton like this: func("This is a var @G this is another var @s", pSomeClass, "some string"); In func() I'd loop through the characters and then at an @ i'd switch() the next character and figure out what manipulation needs to be done, then copy the new proper data into the spot. That's not a problem. The PROBLEM, is that it seems I can't get my argumet list without a proper format string, which I don't have. I even tried making a new dynamically allocated string that replaces all my @x with %s and it still didn't work in va_start().
void func(const char* FakeFmt, ... )
{
va_list vaList;
va_stat(vaList, /*some format that works? already tried to fake it with "%s %s", didn't work =/ */)

// I put MY characters through a switch to decide what
// type the argument is, and how to store it

CONTAINER var = va_arg(vaList, CONTAINER);

// Here i'd manipulate this data

// Then copy it to the proper place in my new string i'm crafting
}

This was a toughy to get clear, ask away if you have any quetions. I'm hoping someone knows how to "complete" this idea, or might have a new way of doing it. Thanks,

##### Share on other sites
Well for anyone intersted I solved my own problem of course after I asked about it. Seems to always happen that way.

Seems you don't NEED to use the format string in va_start(vaList, fmt), just the first variable so that it knows where the rest of the argumetns are. so yeah, I'm good to go.

Thanks =)

##### Share on other sites
per the documentation, va_start() requires that you pass it the last required arguement so that it knows where the variable arguements start.

• 33
• 12
• 10
• 9
• 9
• ### Forum Statistics

• Total Topics
631352
• Total Posts
2999486
×