CEC13 Linux C++
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
RUAN YY
am 23 Sep. 2020
Kommentiert: RUAN YY
am 24 Sep. 2020
Hey guys! I am new to Linux and currently I am working on evolutionary computation which involves CEC13 benchmark.
I found on the CEC13 website that
For Linux Users:
Please change %xx in fscanf and fprintf and do not use "WINDOWS.H".
But fscanf and fprintf seem to follow the same syntax in Linux C++, what does it refer to ? What should I modify?
The related code is as follows.
#include <WINDOWS.H>
#include <stdio.h>
#include <math.h>
#include <malloc.h>
#include <mex.h>
.....
if (fpt==NULL)
{
printf("\n Error: Cannot open input file for reading \n");
}
.......
for (i=0; i<cf_num*nx*nx; i++)
{
fscanf(fpt,"%Lf",&M[i]);
}
....
Would you please give me some help about how to modify the code? Many thanks!
BTW, if nothing changes, the output is incorrect although it can be complied.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 24 Sep. 2020
For Visual Studio, %Lf stands for "long double" .
long double in Windows is the same as double. long double in gcc is a larger floating point number. This can lead to incompatibilities.
You should probably be using %lf for double instead of long double: it will not make any difference for Visual Studios and it will prevent problems for other compilers.
MATLAB does not support long double.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Model Predictive Control Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!