文件已打开,读数据程序如下
void CReadTXTfileView::LoadData()
{
char str[255];
FILE *fp;
fp=fopen(m_filename,"r"); fgets(str,254,fp);
fscanf(fp,"%d\n",&Num);
fscanf(fp,"%s\n",m_Data.m_Name); fgets(str,254,fp); fscanf(fp,"%f\n",&m_Data.m_a0);
CString string;
string.Format("%f",m_Data.m_a0);
AfxMessageBox(string);
}
相应的文本文件如下
数目
2
长度1
半长轴/m
80000000000.01234535656前几行都能正确读出,最后这个m_Data.m_a0无法正确显示,m_Data是一个数据类,在其中声明了m_a0为双精度。
我发现在读取时如果取%lf情况会稍微好一点儿,但是数据再取长就无法正确显示了。
这是什么原因?
有何解决办法?
void CReadTXTfileView::LoadData()
{
char str[255];
FILE *fp;
fp=fopen(m_filename,"r"); fgets(str,254,fp);
fscanf(fp,"%d\n",&Num);
fscanf(fp,"%s\n",m_Data.m_Name); fgets(str,254,fp); fscanf(fp,"%f\n",&m_Data.m_a0);
CString string;
string.Format("%f",m_Data.m_a0);
AfxMessageBox(string);
}
相应的文本文件如下
数目
2
长度1
半长轴/m
80000000000.01234535656前几行都能正确读出,最后这个m_Data.m_a0无法正确显示,m_Data是一个数据类,在其中声明了m_a0为双精度。
我发现在读取时如果取%lf情况会稍微好一点儿,但是数据再取长就无法正确显示了。
这是什么原因?
有何解决办法?
CStdioFile::ReadString()
我在试cfile 类,只能读字符串,没法直接读数字.
我现在要读进来的是可用于计算的数据呀?
用流还没有学。感觉不如fscanf直观,好像很麻烦啊?
对了,各位大侠还没有解释为什么会出现上述问题呢?