当前位置: 代码迷 >> WinCE >> winceVC++读取txt文件保存到数组解决方案
  详细解决方案

winceVC++读取txt文件保存到数组解决方案

热度:58   发布时间:2016-04-28 13:10:11.0
winceVC++读取txt文件保存到数组
如题,data.txt文件如下:(每行一个数据,有换行)
0.602634
0.603015
0.602634
0.602634
0.603015
如何将他读取并保存到一个数组float m[]中呢?

------解决方案--------------------
C/C++ code
void ReadFloatData(float *m){    FILE *fp;    int i = 0;    fp = fopen("data.txt", "r");    if(fp)    {        while(!feof(fp))        {            fscanf(fp, "%f", &m[i++]);        }        fclose(fp);    }}
------解决方案--------------------
下面是我实际的eVC代码:
C/C++ code
void GetOneLineStr(FILE *pf, LPTSTR pszBuf, int nCodeType){    if(nCodeType==0) // 编码类型: 0=ANSI, 1=UNICODE    {        while( !feof(pf) )        {            *pszBuf = fgetc(pf); // _fgettc() // 从流读取一个字符            if(*pszBuf == _T('\n')) break;            pszBuf++;        }        *(pszBuf-1) = _T('\0');    }    else if(nCodeType==1)    {        while( !feof(pf) )        {            *pszBuf = (char)fgetwc(pf); // _fgettc() // 从流读取一个字符            if(*pszBuf == _T('\n')) break;            pszBuf++;        }        *(pszBuf-1) = _T('\0');    }}BOOL LoadFile(){//    CString strFileName = _T("\\Disk\\data.txt");    CString strFileName = _T("C:\\data.txt");    int    nCodeType = 0; // 编码类型: 0=ANSI, 1=UNICODE        FILE * pfile;    TCHAR  uzLine[1024];    float m[1024];    int i = 0;        pfile = _tfopen(strFileName, _T("rb"));    if( pfile )    {        int ch1 = 0, ch2 = 0;        ch1 = fgetc(pfile);        ch2 = fgetc(pfile);        if(ch1==0xFF && ch2==0xFE)        {            nCodeType = 1; // 编码类型: 0=ANSI, 1=UNICODE        }        else        {            fseek(pfile, 0L, SEEK_SET);        }                fseek(pfile, 0L, SEEK_SET);        while( !feof( pfile ))        {            if( feof(pfile) ) goto exit;            GetOneLineStr(pfile, uzLine, nCodeType);            m[i] = (float)atof(uzLine);        //    CString str;        //    str.Format("%f", m[i]);        //    AfxMessageBox(str); // 测试,是你要的结果            i ++;        }        fclose(pfile);    }exit:        return TRUE;}
------解决方案--------------------
我看错了!上面的回复取消!

探讨
引用:

LZ你写代码能力很弱. 如果下面的代码可能的话,可以结帖了!

C/C++ code

static void WriteFloatData(const float *m, size_t s)
{
FILE *fp;
int i =……


LS的绝对不可以!
WinCE VC是Unocode,你的“fprintf(fp, "%f\n", m[……
  相关解决方案