请问如何把CString字符串转为char字符串?
还有就是
CFile txtfil;
txtfil.Open("Text.txt",CFile::modeWrite);
CString strfil;
strfil = EditVal;// EditVal是个CString字符串。
txtfil.Write(strfil,30);
为什么打开Text.txt一看输出的是乱码呢?
请高手指教。

解决方案 »

  1.   

    1)将CString转换为char字符串:
       CString oldstr="12345678";
       char newstr[10];
       strcpy(newstr,oldstr.GetBuffer(oldstr.GetLength()));
    2)将txtfil.Write(strfil,30)改为:
        txtfil.Write(strfil.GetBuffer(strfil.GetLength()),strfil.GetLength());
      

  2.   

    char str[256];
    CString str2;str2="okok";for(int i=0;i<str2.GetLength();i++)
    {
        str[i]=str2[i];
    }
    str[i]='\0';
      

  3.   

    1
    strncpy(char_m,str,sizeof(char_m));
    2
    str.GetBuffer()
    str.ReleaseBuffer()
    配合可以把str当作字符数组使用
      

  4.   

    CFile txtfil;
    CString EditVal = "Hei, Bill.Gate is a Foolish man!"; //测试用的
    txtfil.Open("Text.txt",CFile::modeWrite); //确定Text.txt已建立
    char sBuf[50];
    int nLength = EditVal.GetLength();
    lstrcpy(sBuf, EditVal.GetBuffer(nLength) );
    txtfil.Write(sBuf, nLength + 1); //加上最后的结束符\0
                                     //你错在此,Write的第一个参数必须有buffer,CString不是buffer,参看MSDN
    txtfil.Close();
    EditVal.ReleaseBuffer(); //用了GetBuffer要用ReleaseBuffer
      

  5.   

    To: Brendax(小成) 
    >>不过还是出现乱码
    你是不是用了中文串。