Pass a char to C file
2 ビュー (過去 30 日間)
古いコメントを表示
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.
0 件のコメント
採用された回答
Jan
2013 年 1 月 16 日
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 件のコメント
Jan
2013 年 1 月 17 日
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.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Naming Conventions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!