用WriteString如何写入char型的buffer?
如下:
char buf[] = "abcdef";如何通过WriteString将buf写入文件呢?

解决方案 »

  1.   

    char* pFileName = "test.dat";
    CStdioFile f1;
    if( f1.Open( pFileName, CFile::modeCreate
           | CFile::modeWrite | CFile::typeText ) )
    {
    char buf[] = "abcdef";
    f1.WriteString(buf);
    }
      

  2.   

    这样会提示错误:
    cannot convert parameter from 'char *' to 'LPCTSTR'
    pFileName和buf都会提示类似的错误
      

  3.   

    char buf[] = "abcdef";
    f1.WriteString((LPCTSTR)buf);
      

  4.   

    CStdioFile::WriteString(CString(buf));
      

  5.   

    恩,用CString强制类型转换是可以写进去的
    可是用LPCTSTR强制类型转换的时候,编译和链接都没出错,也可以运行,就是数据全部丢失了,这是为什么呢?
      

  6.   

    CStdioFile f1;
    if( f1.Open( _T("C:\\test.log"), CFile::modeCreate | CFile::modeWrite | CFile::typeText ) )
    {
    char buf[] = "abcdef";
    f1.WriteString((LPCTSTR)buf);
    f1.WriteString(_T("1234"));
    }f1.Close();运行结果:1234写进去了,abcdef没有写进去
      

  7.   

    不是没写进去,而是1234把abcdef那一行覆盖了,因为1234在abcdef之后写的原因,所以你要换行再写
      

  8.   


    CStdioFile f1;
    if( f1.Open( _T("C:\\test.log"), CFile::modeCreate | CFile::modeWrite | CFile::typeText ) )
    {
    char buf[] = "abcdef";
    f1.WriteString((LPCTSTR)buf);
    f1.WriteString(_T("\r\n"));
    f1.WriteString(_T("1234"));
    }f1.Close();这样的结果是:文件的第一行为空白,第二行1234
      

  9.   

    char buf[] = "abcdef";
    改成:TCHAR buf[] = _T("abcdef");你可能用的是UNICODE