在将数据写入到文本文件时,建立代码:
CFileDialog dlg(FALSE, "*.txt",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"*.txt"); 
if ( dlg.DoModal()!=IDOK ) return;
//获取文件的绝对路径
CString sFileName=dlg.GetPathName();
CStdioFile out;
//打开文件
out.Open(sFileName, CFile::modeCreate|CFile::modeWrite);
//保存文件
CString sSql="文本文件内容";
out.WriteString(sSql);
out.Close();
但是编译时出错: error C2664: 'CFileDialog::CFileDialog' : cannot convert parameter 3 from 'const int' to 'const char *'        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast。如果把OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT去掉就没错了,这是怎么回事,这个应该是没错的。
还有一个问题,如果数据是在double aa[]数组中存放的,如何写到文本文件中。

解决方案 »

  1.   

    CFileDialog::CFileDialogCFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );
    注意一下,你的参数不对咯,呵呵
      

  2.   

    同意楼上~~~
    CFileDialog(
    BOOL bOpenFileDialog,
    LPCTSTR lpszDefExt = NULL,
    LPCTSTR lpszFileName = NULL,
    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
    LPCTSTR lpszFilter = NULL,
    CWnd* pParentWnd = NULL); 
    举例:
    For example, Microsoft Excel permits users to open files with extensions .XLC (chart) or .XLS (worksheet), among others. The filter for Excel could be written as:static char BASED_CODE szFilter[] = "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";你看一下MSDN就知道了~~~
      

  3.   


    CFileDialog dlg(FALSE, "*.txt",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"txt|*.txt||");
      

  4.   

    我使用函数_fcvt()进行了转换,发现转化后,原来的小数点就没有了,这个问题该怎么解决,请指点指点。如123.4567,转换后就成了1234567
      

  5.   

    用CString的format或者
    用sprintf写字符窜
    Example
    /* SPRINTF.C: This program uses sprintf to format various
    * data and place them in the string named buffer.
     */#include <stdio.h>
    void main( void )
    {
    char  buffer[200], s[] = “computer”, c = ‘l’;
    int   i = 35, j;
    float fp = 1.7320534f;/* Format and print various data: */
    j  = sprintf( buffer,     “\tString:    %s\n”, s );
    j += sprintf( buffer + j, “\tCharacter: %c\n”, c );
       j += sprintf( buffer + j, “\tInteger:   %d\n”, i );
       j += sprintf( buffer + j, “\tReal:      %f\n”, fp );printf( “Output:\n%s\ncharacter count = %d\n”, buffer, j );
    }
    Output
    Output:
    String:    computer
    Character: l
       Integer:   35
       Real:      1.732053character count = 71
      

  6.   

    foalt a = 123.4567;
    sprintf(szBuffer, "%.4f", a);