Clear Filters
Clear Filters

Pass a char to C file

2 views (last 30 days)
Sandeep
Sandeep on 16 Jan 2013
I am using an embedded Matlab code for calling a C code, which read a text file. However I need to update the code below to pass a the text file name. I think I need to pass a char to the code, but I am not sure how to modify the c code below:
#include <stdio.h>
#include <stdlib.h>
#include "readerext4.h"
void readerext4(int32_T size, real_T *txpos, real_T *typos, real_T *tzpos, real_T *tvxpos, real_T *tvypos, real_T *tvzpos)
{
int32_T row;
FILE *cfPtr; // cfPtr = flowfield.dat file pointer
FILE *cfPtrDebug;
if ( cfPtr = fopen( "Flowfield.dat", "r" ))
cfPtrDebug = fopen( "Debug.txt", "w" );
{
for ( row = 0; row < size; row++ )
{
fscanf( cfPtr, "%lf", txpos+row);
fscanf( cfPtr, "%lf", typos+row);
fscanf( cfPtr, "%lf", tzpos+row);
fscanf( cfPtr, "%lf", tvxpos+row);
fscanf( cfPtr, "%lf", tvypos+row);
fscanf( cfPtr, "%lf", tvzpos+row);
fprintf( cfPtrDebug, "%d\n", row + 1 );
}
fclose( cfPtr );
fclose( cfPtrDebug );
}
}
So instead of hard coding the the text file name (Flowfield.dat), I would like to pass a char (e.g. filename = flowfield.dat) to the C code. Can someone help, please? Thanks.

Accepted Answer

Jan
Jan on 16 Jan 2013
void readerext4(int32_T size, real_T *txpos, real_T *typos, real_T *tzpos,
real_T *tvxpos, real_T *tvypos, real_T *tvzpos,
const char* FileName) /* added */
{ int32_T row;
FILE *cfPtr; // cfPtr = flowfield.dat file pointer FILE *cfPtrDebug;
if ( cfPtr = fopen(FileName, "r" ))
And append the "const char* FileName" in the header file also:
void readerext4(int32_T size, real_T *txpos, real_T *typos, real_T *tzpos,
real_T *tvxpos, real_T *tvypos, real_T *tvzpos,
const char* FileName);
  3 Comments
Jan
Jan on 17 Jan 2013
I do not work with Simulink, but I'd expect, that it accepts mxChar, which is an UTF16 encoded character, or a uint16_T from the view of the compiler.
Sandeep
Sandeep on 18 Jan 2013
Thanks a lot Jan.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!