Потому что MATLAB® не использует stdin
и stdout
, не используйте функции C/C + +, такие как scanf
и printf
для запроса ввода данных пользователем. В следующем примере показано, как использовать mexCallMATLAB
с input
функция для получения номера от пользователя.
#include "mex.h" #include "string.h" void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { mxArray *new_number, *str; double out; str = mxCreateString("Enter extension: "); mexCallMATLAB(1,&new_number,1,&str,"input"); out = mxGetScalar(new_number); mexPrintf("You entered: %.0f ", out); mxDestroyArray(new_number); mxDestroyArray(str); return; }
input
| inputdlg
| mexCallMATLAB