我是一个VC++新手,我想读取一个.txt文件,并显示其内容。目前我建立了一个对话框的工程,使用fopen函数函数打开文件成功,可是不知道后续的操作及其怎样显示txt中的内容。下面是我写的一部分代码:
FILE *stream;
   if( (stream  = fopen( "data.txt", "r" )) == NULL )
   {
      message.Format("读文件失败!");
      m_list.AddString(message);
   }
   else
   {
       message.Format("读文件成功!");
       m_list.AddString(message);
    }
谢谢各位高手指点。

解决方案 »

  1.   

    用文本框(多行)组件显示,或者用RichEdit组件
      

  2.   

    http://vckbase.com/document/viewdoc/?id=1439
      

  3.   

    无特殊要求用CStdioFile一行一行读就行了,然后按楼上的方法显示
      

  4.   

    在你的对话框上新建一个Edit box, 设其ID为IDC_EDIT1
    然后使用如下代码:
     CFile myfile;
    CString m_disp;
        myfile.Open("data.txt",CFile::modeRead);
    myfile.SeekToBegin();
    myfile.Read(m_disp.GetBufferSetLength(myfile.GetLength()),myfile.GetLength());
    GetDlgItem(IDC_EDIT1)->SetWindowText(m_disp);//在新建的editbox上显示
    myfile.Close();
      

  5.   

    FILE *stream;
       if( (stream  = fopen( "data.txt", "r" )) == NULL )
       {
          message.Format("读文件失败!");
       }
       else
       {
           char str[1024*1024*1024];
           message.Format("读文件成功!");
           while(!feof(stream))
          {
             fscanf(stream,"%s",str);
          }
          m_RichEdit.SetWindowText(str);
          fclose(stream);
        }
      

  6.   

    谢谢大家的回答,读文件成功了。可是我想把文件中的多行文本显示在IDC_LIST中时也换行,或者在读文件时能标记出换行的标志,应该怎么弄?谢谢!!
      

  7.   

    你要求的功能可以用ifstream,ofstream实现。
    下面是一个读取w.txt的子函数,输出函数类似可以实现。void sig_win(double a[],int SumNum)
    {
    ifstream in("w.txt",ios::nocreate);
    for (int i=0;i<SumNum;i++)
    {
    in>>a[i];
    }
    }
      

  8.   

    谢谢大家。我现在是使用下面的方法读写文件,但有一个问题,就是没执行依次此代码,output.txt文件内容就会被重写。但在我的程序中,需要反复向output.txt文件中写内容,但要保存上次写入的信息。请问如何才能实现。谢谢。
    ofstream fout;
    fout.open("output.txt");
    fout << "Write data to push service fail."<< "\n";
    fout << flush; 
    fout.close();