初めての作業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
プログラムをもう一度繰り返すにはどうすればよいですか、それとも同じ機能でもう一度繰り返すことはできませんか?