0
我目前正在嘗試創建一個切換系統,在那裏我會有一堆可能的選項和一個值,我將所有這些可能的選項作爲參數輸入,然後獲取所需的參數。這是我試過到目前爲止:根據值查找特定參數
void Toggle(int scroll, int &state, int maxV, ...)
{
state++;
if (state >= maxV)
state = 0;
char *char_State = "";
va_list argptr;
va_start(argptr, maxV);
for (int i = 0; i < maxV; i++)
{
if (i == state)
char_State = va_arg(argptr, char*);
}
va_end(argptr);
printf("State: %s\n", char_State);
}
我會用這樣的:
int state = 0;
Toggle(0, state, 3, "Option 1", "Option 2", " Option 3");
printf("StateNum: %i\n", state);
Toggle(0, state, 3, "Option 1", "Option 2", " Option 3");
printf("StateNum: %i\n", state);
Toggle(0, state, 3, "Option 1", "Option 2", " Option 3");
printf("StateNum: %i\n", state);
Toggle(0, state, 3, "Option 1", "Option 2", " Option 3");
printf("StateNum: %i\n", state);
但由於某些原因運行代碼時,從上面我得到這個作爲一個結果:
State: Option 1
StateNum: 1
State: Option 1
StateNum: 2
State: Option 1
StateNum: 0
State: Option 1
StateNum: 1
任何想法我做錯了什麼?由於這是我第一次使用va,任何幫助都是值得讚賞的!