在文件中有一行的数据为
number:1,2,3,4,5,6
我想用CString 来实现
ifstream infile(FileName,ios::in);
if(!infile)
return FALSE;
TCHAR szTemp[500];
CString strGet;
TCHAR  szNum[10];
int nPos;infile.getline(szTemp,500);
strGet=szTemp;
if(strGet.IsEmpty())
return FALSE;nPos=strGet.Find("number:",0);
if(nPos<0)
return FALSE;
strGet=strGet.Right(strGet.GetLength()-8);
写到这 下面不知怎么写才好。求教。。

解决方案 »

  1.   

    你要是空格隔开就很好办,直接用stringstream
      

  2.   


    //可以考虑二进制文件
    #include "stdio.h"
    #include <stdlib.h>
    int average(char *pFilePath);
    void main()
    {
    FILE *fp;
    int nData[10];
    for(int i=0;i<10;i++)
    {
    printf("请输入第%d个数:",i+1);
    scanf("%d",nData+i);
    }
    fp = fopen("c:\\data.txt", "wb");//b表示以二进制的形式写入文件
    if(fp!=NULL)
    {
    fwrite(nData,sizeof(int),10,fp);
    fclose(fp);
    //写完文件后,可以看一下文件大小,40个字节,
    //其实就是数组的大小  sizeof(int)*10 = 40   以前在学校里没搞明白的问题,现在明白了
    } printf("平均值大小:%d\n",average("c:\\data.txt") );
    system("pause");
    }int average(char *pFilePath)
    {
    int nData[10]={0};
    FILE *fp;
    fp = fopen(pFilePath, "rb");//b表示以二进制的形式
    if(fp!=NULL)
    {
    fread(nData,sizeof(int),10,fp);
    fclose(fp);
    }
    else
    {
    printf("读取文件出错了...");
    return 0 ;
    } int nSum = 0 ;
    for(int i=0;i<10;i++)
    {
    printf("第%d个数:\t内存地址%8x\t值:%d\n",i+1,nData+i,*(nData+i));
    nSum += *(nData+i) ;
    }
    return nSum/10;
    }