19,503
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
static void ReadFloatData(float *m)
{
FILE *fp;
int i = 0;
fp = fopen("\\StorageCard\\data.txt", "r");
if(fp)
{
while(!feof(fp))
{
fscanf(fp, "%f", &m[i++]);
TCHAR szBuf[128];
_stprintf(szBuf, L"%f\n", m[i-1]);
OutputDebugString(szBuf);
}
fclose(fp);
}
}
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
float m[5] = {0};
ReadFloatData(m);
return 0;
}
static void WriteFloatData(const float *m, size_t s)
{
FILE *fp;
int i = 0;
fp = fopen("\\StorageCard\\out.txt", "w");
if(fp)
{
for (size_t i = 0; i < s; ++i)
{
fprintf(fp, "%f\n", m[i]);
}
fclose(fp);
}
}
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;
}
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);
}
}