比如一个文本文件格式如下: 
1 a
2 b
3 c
.................
完成功能:
1 a为一个文件 
2 b为一个文件.....
FILE *fp;
fp=fopen("c:\\a.txt","r+");//打开文件 CString strRead;
CString strResult;
CString strOrd;
CString strTitle;
int count=2;//行首从1开始.//如果超过8则程序只算到8为止,以下9.10.11....都不正常了.
int fileName=1; strOrd.Format("%d",count++);//初始化为找2开始

if(fp!=NULL)
{
while(!feof(fp))
{

strRead=fgetc(fp);//读取文本

if(strRead==strOrd)
{

strOrd.Format("%d",count++);
strTitle.Format(_T("c:\\%d.txt"),fileName++);
CStdioFile fn(strTitle,CFile::modeCreate | CFile::modeWrite);
fn.Write(strResult,strResult.GetLength()-1);
fn.Close();
strResult="";


}
strResult+=strRead;

}
}
fclose(fp);
//程序读取前8个都正常,到第九个疯了,找半天不知什么原因,大家帮我看看,或者有其它的方法?

解决方案 »

  1.   


    strRead=fgetc(fp);//读取文本你每次只读取一个字节,当数字为两位数(两个字节)时程序就肯定乱了。
      

  2.   


    //问题出现在没法读取两位数的序号,我试着修改了一下,应该可以了。
        // TODO: Add extra validation here
        FILE *fp;
        fp=fopen("c:\\a.txt","r+");//打开文件     CString strRead;
        CString strResult;
        CString strOrd;
        CString strTitle;
    CString Temp;
        int count=2;//行首从1开始.//如果超过8则程序只算到8为止,以下9.10.11....都不正常了.
        int fileName=1;    strOrd.Format("%d",count++);//初始化为找2开始
        
        if(fp!=NULL)
        {
            while(!feof(fp))
            {
                
                Temp = fgetc(fp);//读取文本
         if(Temp.GetAt(0) >= '0' && Temp.GetAt(0) <= '9')
        {
             strRead+=Temp;
     continue;
        }            if(strRead==strOrd)
                {
                
                    strOrd.Format("%d",count++);
                    strTitle.Format(_T("c:\\%d.txt"),fileName++);
                    CStdioFile fn(strTitle,CFile::modeCreate | CFile::modeWrite);
                    fn.Write(strResult,strResult.GetLength()-1);
                    fn.Close();
                    strResult="";
                    
                    
                }
                strResult+=strRead;
                strRead.Empty();
            }
        }
        fclose(fp);
      

  3.   

    不是很清楚你要实现什么,a.txt的内容是什么样子?到第9个时出现什么问题?