用代码1每次写入后都会把先前的内容全部覆盖!
用代码2:好像不能实现CString格式写入,写入后全是乱码,要怎么才能实现内容追加,最好给出个代码!
代码1:CStdioFile   file;   
  if(!file.Open(".\\a.txt",CFile::modeCreate|CFile::modeWrite)) 
  file.WriteString(m_Edit1);//把str写入到文件   
  file.Close();
代码2:CFile file;
char pbuf[100];
Open(".\\a.txt",CFile::modeWrite);
cfile.Write(pbuf,100);代码2是直接按标准写的,我如果直接写入m_Edit1的话就全是乱码!

解决方案 »

  1.   

    CFile::modeNoTruncate   Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Thus the file is guaranteed to open, either as a newly created file or as an existing file. This might be useful, for example, when opening a settings file that may or may not exist already. This option applies to CStdioFile as well.
    用这个标记吧
      

  2.   

    可能是文件编码的问题,如果工程是UNICODE编译,文件也要是UNICODE格式才行。
      

  3.   

    CreateFile
    SetFilePointer
    WriteFile 
    ^_^
      

  4.   

    CreateFile
    SetFilePointer
    WriteFile 
    ^_^
      

  5.   

    CreateFile 
    SetFilePointer 
    WriteFile 
    应该就是这样,出查一下msdn就ok了
      

  6.   

    Open(".\\a.txt",CFile::modeWrite | CFile::modeNoTruncate);
    这样试试。
      

  7.   

    fengzenghao 
    可以给出代码吗?
    谢谢了
      

  8.   

    这样做就对了: CFile file;
    file.Open(_T("aaa.txt"), CFile.modeCreate|CFile::modeWrite);
    file.Write("aaaaaaaaaa", strlen("aaaaaaaaaa"));
    file.Close();

    file.Open(_T("aaa.txt"), CFile::modeNoTruncate|CFile::modeWrite);
    file.SeekToEnd();
    file.Write("fffffffffffffff", strlen("fffffffffffffff"));
    file.Close();
      

  9.   

    这样做就对了: CFile file;
    file.Open(_T("aaa.txt"), CFile.modeCreate|CFile::modeWrite);
    file.Write("aaaaaaaaaa", strlen("aaaaaaaaaa"));
    file.Close();

    file.Open(_T("aaa.txt"), CFile::modeNoTruncate|CFile::modeWrite);
    file.SeekToEnd();
    file.Write("fffffffffffffff", strlen("fffffffffffffff"));
    file.Close();
      

  10.   

    另外,你的字符串是不是Unicode ?如果是,用WideCharToMultiByte把Unicode字符转换为Ascii后写入文件就不会乱码了。
      

  11.   

    CFile file;
    char pbuf[100];
    Open(".\\a.txt",CFile::modeWrite);
    cfile.SeekToEnd();
    cfile.Write(pbuf,100);
      

  12.   

    fengzenghao   
    问题解决了,可以解释一下吗?
    file.Write("fffffffffffffff", strlen("fffffffffffffff"));
    这句是什么意思
      

  13.   

    意思是将一个字符串"fffffffffffffff",写入文件。
    这个很基础,建议多看看基础。