比如我的文件是: 
{
周围交通: 距西单商业区仅0.5公里,由此至天安门不过三分钟车程,紧靠宣武门地铁站  
交通位置: 二环以内   
绿化/容积率: 绿化率30.00%  容积率8.100  
占地面积:800平方米 建筑面积:6500平方米   
车位: 出租地上150元/月,地下500元/月  
热水: 24小时  
暖气: 中央空调  
}现在要将:后面的文字写到另外一个文件中,请问该怎么做?结果文件
{
距西单商业区仅0.5公里,由此至天安门不过三分钟车程,紧靠宣武门地铁站
二环以内
绿化率30.00%  容积率8.100 
出租地上150元/月,地下500元/月
24小时
中央空调 
}

解决方案 »

  1.   

    用CStdioFile逐行读取入CString变量,在CString变量中查找(CString::Find)":"字符,用CString::Right()取得子字符串存入新文件。
      

  2.   

    不是scanf吧,应该是sscanf.
    也是用CStdioFile逐行读取入CString变量,直接把字符串格式化输出就可以
      

  3.   

    给你一个我写的例子 
    ///////////////////////////////////
    //功能:从配置文件中读取指定字段值
    //参数:const char *ItemFile  配置文件名
    //      const char *ItemName  条目名称
    //      char *ItemValue       返回条目值
    //      int ItemBufLen        缓冲区长度
    //返回值:成功返回0,文件错误返回-1,条目不存在返回-2
    ///////////////////////////////////
    int ReadItem(const char *ItemFile, const char *ItemName, char *ItemValue, int ItemBufLen)
    {
    int i,j,m=0;
    FILE *ReadFile; //句柄
    char fp[200]; // 读出文件
    unsigned long FileLength;
    int NameLength;
    ItemValue[0]=0;
    if( (ReadFile=fopen(ItemFile,"r+")) ==NULL ) //打开文件
    { //printf("open file fail!");
    return -1;
    }
    FileLength=strlen(ItemFile);
    NameLength=strlen(ItemName);

    setlock( fileno(ReadFile), F_WRLCK);
    while(!feof(ReadFile)) //检测整个文件
    {
    fgets(fp,200,ReadFile);
    for(j=0;j<strlen(fp) && fp[j]!='=';j++) ;
    for(j;fp[j-1]==' ';j--) ;
    if(j<NameLength) j=NameLength;
    if(memcmp(fp,ItemName,j)==0) //找到指定的字段
      {
      for(i=0;i<strlen(fp) && (fp[i]!='=');i++) 
      ;
      i++;
      for(i;(fp[i]!='\0') && (fp[i]!='\x0d') && (fp[i]!='\x0a') && (m<=ItemBufLen); i++)
      if(fp[i]!=' ')
    ItemValue[m++]=fp[i]; //读取指定字段的值
    ItemValue[m]=0;
    setlock( fileno(ReadFile), F_UNLCK);
    fclose(ReadFile);
    return 0;
    }  
    }
    setlock( fileno(ReadFile), F_UNLCK);
    fclose(ReadFile);
    return -2;
    }
    我读取的类似windows的ini格式,   西单=前门西做地铁
                                     条目名称   条目脂
    你把 “= ”换成 ”:“读出后 在写一个文件
      

  4.   

    void use_sscanf()
    {
    char tokenstring[] = "周围交通: 距西单商业区仅0.5公里,由此至天安门不过三分钟车程,紧靠宣武门地铁站 ";
    char szSection[MAX_PATH] = "", szValue[MAX_PATH] = "";

    int result = sscanf(tokenstring, "%[^':']:%s", szSection, szValue); TRACE("%s\n%s\n", szSection, szValue);
    }
      

  5.   

    Mackz(在相互) 的方法最好最安全.