这是我第一次va_list
和其他东西一起工作,所以我真的不知道我在做什么。好吧,基本上我所拥有的是有序函数中的一堆数字(1、2、3、4、5),我让它们打印出来。这工作正常。
#include <iostream>
#include <cstdarg>
using namespace std;
void ordered(int num1, double list ...);
void main()
{
ordered(5, 1.0, 2.0, 3.0, 4.0, 5.0);
}
void ordered(int num1, double list ...)
{
va_list arguments;
va_start(arguments, num1);
list = va_arg(arguments, double);
cout << "There are " << num1 << " numbers" << endl;
do {
cout << list << endl; // prints out 1 then 2 then 3 then 4 then 5
list = va_arg(arguments, double);
} while (list != 0);
// at this point, list = 0
va_end(arguments);
}
问题是,在它之后va_end(arguments);
或之前,我想让程序第二次打印出我的列表;基本上再打印一次1、2、3、4、5,不做其他函数。我试图复制代码:
va_start(arguments, num1);
do {
cout << list << endl;
list = va_arg(arguments, double);
} while (list != 0);
va_end(arguments);
没有成功。程序如何再重复list
一次,或者不可能在同一功能中再次重复?