0
fprintf()
を使用してファイルにIloNumArray
を印刷しようとしています。問題は、配列の長さがわからないということです。これは、即時コールバック内でgetValues()
メソッドで満たされているためです。即時コールバック(C++)内のファイルにIloNumArrayを印刷
私は問題を抱えているコールバックのコードは、次のいずれかです。助けを
ILOINCUMBENTCALLBACK3(MyFirstcallback,
IloCplex, cplex,
IloInt, contador,
IloNumVarArray, varenteras){
int i;
int length=0;
IloNum CurrentInc = MAX_COL;
IloNum BestTime = 0;
IloNum BestObj = MAX_COL;
IloNumArray BestSol(varenteras.getEnv());
IloNum FirstTime = 0;
IloNum FirstObj = MAX_COL;
IloNumArray FirstSol(varenteras.getEnv());
if (hasIncumbent()) {
if (contador == 0 || contador == 1){
contador+=1;
FirstObj=getIncumbentObjValue();
getValues(FirstSol,varenteras);
FirstTime=cplex.getTime();
length=sizeof(FirstSol)/sizeof(FirstSol[0]);
//The first issue is here, length should be the size of the solution, and it's not giving it.
printf("El tiempo %lf el valor %lf el largo de la solucion %d \n",FirstTime,FirstObj,length);
FILE* out;
out = fopen("ResultadoPruebaTamanotest.txt","at+");
fprintf(out,"%lf \t %lf \n",FirstTime,FirstObj);
for (i=0;i<length;i++){
fprintf(out,"%d \t",FirstSol[i]);
}
fprintf(out,"\n");
}
}
ありがとう!