很简单的一个小程序,为什么总是调不对.来者有分!该如何解决

很简单的一个小程序,为什么总是调不对.来者有分!
CFileDialog   indlg(0, "txt ", "*.txt ");
if(indlg.DoModal()==IDOK)
{
unsigned   long   feature[28]   ={1,2,3,4,5,6,7,8,9,10};
m_infilename=indlg.GetPathName();
                FILE   *TraceFile;
TraceFile=fopen(m_infilename, "a+ ");
UpdateData(TRUE);

for(i=0;i <28;i++)
{
CString   Str;
Str.Format( "%d ",feature[i]);
m_DataShow=Str;
fprintf(TraceFile, "%d ",m_DataShow);
}

        fclose(TraceFile);
}
为什么不能输出feature[]数组中的数值呢?先谢谢大家了

------解决方案--------------------
给分
------解决方案--------------------
unsigned long feature[28] ={1,2,3,4,5,6,7,8,9,10};
---------------------------------------------
你不是只有前10个元素有值吧,后面18个元素呢?
------解决方案--------------------
CFileDialog indlg(0, "txt ", "*.txt ");
CString m_infilename,m_DataShow;
if(indlg.DoModal()==IDOK)
{
unsigned long feature[28] ={1,2,3,4,5,6,7,8,9,10};
///
///add initialize here
///
ZeroMemory(feature+10,sizeof(unsigned long)*(28-10));

m_infilename=indlg.GetPathName();
FILE *TraceFile;
TraceFile=fopen(m_infilename, "a+ ");
UpdateData(TRUE);

for(int i=0;i <28;i++)
{
CString Str;
Str.Format( "%d ",feature[i]);
m_DataShow=Str;

///
///you should print format file like this
///
///fprintf(TraceFile, "%s ",(LPSTR)(LPCTSTR)m_DataShow);

///
///or like this
///

fprintf(TraceFile, "%d ",feature[i]);
}

fclose(TraceFile);
}
//为什么不能输出feature[]数组中的数值呢?先谢谢大家了